首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中使用tkinter单击单选按钮时不更新值

在python中使用tkinter单击单选按钮时不更新值
EN

Stack Overflow用户
提问于 2020-02-01 21:21:58
回答 1查看 314关注 0票数 0

这是我第一次尝试GUI。现在,我只希望能够单击一个单选按钮,并让它打印出我分配给该按钮的值。然而,var.get()没有给我任何东西。我用IntVar试了一下(我的值是1和2,而不是“质子”和“电子”),var.get()只会给我0。对于StringVar,它不会给出任何东西(当单选按钮调用choosecharge时,不会打印任何东西)。我试过阅读关于单选按钮的东西,我根据我看到的方式编写了代码,它成功地创建了单选按钮,但重点是能够在单击时使用它们的值。

代码语言:javascript
运行
复制
import tkinter as tk
def choosecharge():
  print(var.get())

root = tk.Tk()
var = tk.StringVar()
proton = tk.Radiobutton(root, text = "proton", variable = var, value = "proton", command = choosecharge)
proton.pack( )

electron = tk.Radiobutton(root, text="electron", variable = var, value= "electron", command = choosecharge)
electron.pack( )


root.mainloop()
EN

回答 1

Stack Overflow用户

发布于 2020-02-01 22:03:19

我采取了一种稍微不同的方法来完成这项任务。

  • 我创建了一个字典,其中包含作为键的整数单选按钮值和要打印为值的字符串。
  • 使用标签小部件在图形用户界面

中打印字符串

代码语言:javascript
运行
复制
import tkinter as tk

root = tk.Tk()

# define an IntVar
var = tk.IntVar()

# create a dictionary of key:value pair as radiobutton_value: str_name_to_print
values = {1: "proton", 2: "electron"}

# instantiate a label widget
lbl = tk.Label(root)

def choosecharge():
    # update the label widgets using the dictionary
    lbl.config(text=values[var.get()])

proton = tk.Radiobutton(root, text="proton", variable=var, value=1, command=choosecharge)
proton.pack(anchor=tk.W)

electron = tk.Radiobutton(root, text="electron", variable=var, value=2, command=choosecharge)
electron.pack(anchor=tk.W)

# pack the label widget below the two radiobuttons
lbl.pack()

root.mainloop()

屏幕截图

为了更好地理解,我对代码中的行进行了注释。我希望这个解决方案能帮助你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60017262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档