首页 > 解决方案 > 通过 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()

在此版本中,只能通过单击按钮来更新文本。如果没有这个“中间人”,我怎样才能使文本自动更新?

标签: pythontkinter

解决方案


在改变了一些东西之后,我得到了它的工作。

最好使用该config()函数来更改项目的属性,另一个重要的事情是不要pack()将对象(在本例中为标签)与变量声明放在同一行。

像这样,您将能够更改文本。这是您的代码更新!

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

推荐阅读