如何解决通过OptionMenu tkinter对象自动更新值?
我想编写一个tkinter应用程序,该应用程序将根据OptionMenu对象的当前状态自动更新值。这就是我到目前为止所拥有的
from tkinter import *
root = Tk()
def show():
myLabel=Label(root,text=clicked.get()).pack()
clicked=StringVar()
clicked.set("1")
drop = OptionMenu(root,clicked,"1","2","3")
drop.pack()
myButton = Button(root,text="show selection",command=show)
root.mainloop()
在此版本中,只能通过单击按钮来更新文本。没有这个“中间人”,如何使文本自动更新?
解决方法
更改某些内容后,我开始使用它。
最好使用config()
函数来更改项目的属性,另一个重要的事情是,不要pack()
对象(在这种情况下为Label)与变量声明在同一行
像这样,您将能够更改文本。这是您的代码已更新!
from tkinter import *
def show():
myLabel.config(text = clicked.get())
root = Tk()
clicked=StringVar( value="1")
myLabel=Label(root,text="click the button at the bottom to see this label text changed")
myLabel.pack()
drop = OptionMenu(root,clicked,"1","2","3")
drop.pack()
myButton = Button(root,text="show selection",command=show)
myButton.pack()
root.mainloop()
,
您可以简单地将clicked
分配给textvariable
的{{1}},然后只要选择一个选项,标签就会被更新:
Label