通过OptionMenu tkinter对象自动更新值

如何解决通过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
Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?