我想写一个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()
在此版本中,只能通过单击按钮来更新文本。没有这个“中间人”,我怎样才能让文本自动更新呢?
发布于 2020-08-11 12:40:07
您可以简单地将clicked
分配给Label
的textvariable
,然后每当选择一个选项时,标签都会更新:
import tkinter as tk
root = tk.Tk()
clicked = tk.StringVar(value="1")
drop = tk.OptionMenu(root, clicked, "1", "2", "3")
drop.pack()
tk.Label(root, textvariable=clicked).pack()
root.mainloop()
发布于 2020-08-11 05:58:32
在改变了一些东西之后,我让它工作了。
最好使用config()
函数来更改item的属性,另一件重要的事情是不要在变量声明的同一行中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()
https://stackoverflow.com/questions/63347255
复制相似问题