Python 如何正确使用Tkinter中的控制变量?
我刚开始研究tkinter以开发一些简单的GUI应用程序。然而,我很难弄清楚控制变量是如何使用的。我只是想检索CheckButton的状态,它是否被选中以及条目的文本,但是使用控制变量似乎不起作用。我知道my_entry.get也可以用来获取文本,但由于大多数教程都使用控制变量,我相信正确使用它是值得学习的。。。非常感谢你的帮助 以下是我的示例代码:Python 如何正确使用Tkinter中的控制变量?,python,variables,tkinter,Python,Variables,Tkinter,我刚开始研究tkinter以开发一些简单的GUI应用程序。然而,我很难弄清楚控制变量是如何使用的。我只是想检索CheckButton的状态,它是否被选中以及条目的文本,但是使用控制变量似乎不起作用。我知道my_entry.get也可以用来获取文本,但由于大多数教程都使用控制变量,我相信正确使用它是值得学习的。。。非常感谢你的帮助 以下是我的示例代码: import tkinter as tk def checkbtn_callback(): print(btn_s
import tkinter as tk
def checkbtn_callback():
print(btn_state.get())
print(entry_text.get())
top = tk.Tk()
btn_state = tk.IntVar()
checkbtn=tk.Checkbutton(top,text='testbutton',variable=btn_state,command=checkbtn_callback)
checkbtn.grid()
entry_text = tk.StringVar()
entry = tk.Entry(top, text='text entry',textvariable=entry_text)
entry.grid()
tk.mainloop()
当我说它不起作用时,这意味着无论用户输入如何,.get的值都不会改变。您的代码在OSX和Python2.7上都适用。当我单击checkbutton时,它会打印出它和entry小部件的正确值。你确定这个密码不适合你吗?你在哪个平台上运行这个?另外,尽管很多教程都使用控制变量,但它们通常是条目小部件不必要的负担。@BryanOakley感谢您提供的信息,这很有趣,我正在Windows 8上运行python 3.3。我很确定这对我不起作用,我真的不太明白,因为这和教程中的代码差不多。我不太确定这不起作用。你发布的代码要么有效,要么无效。不应该有任何灰色区域。@BryanOakley很抱歉造成混淆,控制变量在我的windows 8计算机上肯定不会更新,我只是再试一次。但它确实在我的Linux机器上工作。