【问题标题】:Tkinter radio buttons always gives values of 0Tkinter 单选按钮总是给出 0 的值
【发布时间】:2022-06-28 17:45:24
【问题描述】:

我正在尝试使用单选按钮来定义要在脚本的其余部分中使用的变量。

当我运行这段代码时,shift 总是 0。

我从网上复制并粘贴了类似的代码,但值始终为 0。

我正在使用 Spyder 运行 python3。

谢谢。

from tkinter import *
root = Tk()

def pixelShift():
        shift = var.get()
        print(shift)

var = IntVar()

Radiobutton(root,
            text        = '1 Pixel',
            variable    = var,
            value       = 1,
            command     = pixelShift
            ).pack(anchor = W)

Radiobutton(root,
            text        = '10 Pixels',
            variable    = var,
            value       = 10,
            command     = pixelShift
            ).pack(anchor = W)

Radiobutton(root,
            text        = '100 Pixel',
            variable    = var,
            value       = 100,
            command     = pixelShift
            ).pack(anchor = W)

root.mainloop()

【问题讨论】:

  • 可能是spyder的问题?当我从命令行运行您的代码时,一切正常。您是否尝试过保存对单选按钮的引用? (例如:rb1 = Radiobutton(...)rb2 = ...rb3 = ...
  • Tk() 的实例很可能不止一个。

标签: python tkinter radio-button spyder


【解决方案1】:

您正在使用创建一个新的Tk() 实例

var = IntVar()

你应该使用

root = Toplevel()

var = IntVar(root)

【讨论】:

    猜你喜欢
    • 2018-09-26
    • 2015-01-29
    • 2017-05-29
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 2013-12-14
    • 2017-08-08
    • 1970-01-01
    相关资源
    最近更新 更多