当前位置: 首页 > 知识库问答 >
问题:

使用tkinter在python中单击Radiobutton时不更新值

司寇苗宣
2023-03-14

这是我第一次尝试GUI。现在我只想能够单击一个radiobutton并使其打印我分配给该按钮的值。但是,var.get()没有给我任何东西。我用intvar尝试了它(我的值是1和2,而不是“质子”和“电子”),var.get()只给我0。对于StringVar,它不提供任何内容(当radiobutton调用ChooseCharge时,不打印任何内容)。我试着阅读了有关radiobuttons的资料,我根据我看到的radiobuttons的操作编写了代码,它成功地创建了radiobuttons,但关键是能够在单击时使用它们的值。

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()

共有1个答案

赵嘉赐
2023-03-14

null

  • 我创建了一个字典,将整数radiobutton值作为键,并将您希望打印的字符串作为值。
  • 使用label小部件在GUI中打印字符串
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()

截图

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

 类似资料:
  • 我有一个简单的TKinter GUI,它有一个文本输入框和一个按钮。我想输入文本,点击按钮,让我的程序打印文本。GUI工作正常,除了单击文本输入框并键入时,在调整窗口大小或单击按钮之前,我看不到光标或文本。单击按钮时,文本将显示在输入框中并返回。当我输入文本时,GUI没有更新。我正在OSX10.10上运行Python 3.4。任何想法都欢迎。 下面是代码:

  • 问题内容: 我已经阅读了一些有关我的问题的信息,但仍然没有得到正确的答案。我尝试了.on()方法仍然无法正常工作。我正在使用Laravel。 JS 加载页面后,我想要的所有东西都可以正常工作,但是当我使用replaceWith()方法更新元素,然后onclick无法正常工作时。 我检查了更新的html和属性,所有这些都在正确的位置。 问题答案: 您需要使用事件委托:- 因此更改::- 至::- 所

  • 问题内容: 当我在“更新”面板中使用“按钮”时,它不会触发点击事件,但在更新面板之外,它可以工作。 这是代码 按钮的代码是 问题答案: 试试这个 集到和附加在

  • 我试图用python模块tkinter创建一个带有输入框的窗口,来制作一个石头剪刀剪纸游戏。然而,每次按下按钮时,我都在努力使输入框更新到另一个值。 我正在纠结的是,如果我要编写作为输入(假设计算机响应始终为0): 那么我的输出将是这是正确的,但是,如果我的下一个输入是一些随机的东西,如,则所需的输出将是。然而,似乎第一个输入被保存并继续使用,因为输出仍然是。 另一方面,如果我们从输入开始,则输出

  • 问题内容: 我是Swing的新手。 我要在单击按钮(完成按钮)后更新表格。我认为数据正确,但屏幕无法正常工作。 以下是我程序的说明 选中复选框,然后单击完成按钮 最底层应更改。 没有主 这是我的代码: 问题答案: 而不是这样做… 只需更新现有模型 或简单地 假设您要继续向表中添加新行。如果您要这样做,还可以先清除表,然后再向其中添加新行。 Swing的工作原理是MVC(模型-视图- 控制器 ),该

  • 应用: 带有两个文本输入字段(input1、input2)的搜索栏 三个按钮:SearchX、SearchY、Clear Results 两个搜索都可以将input1和input2作为参数,以得到两个不同的结果。 有一个结果组件,它接受输入、操作,并根据操作呈现搜索组件。 问题: 我们希望只有在单击按钮时才启动搜索。使用下面的代码,在第一个搜索结果之后,只要您更改输入,结果组件就会预期地重新呈现,