首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过OptionMenu tkinter对象自动更新值

通过OptionMenu tkinter对象自动更新值
EN

Stack Overflow用户
提问于 2020-08-11 04:04:26
回答 2查看 56关注 0票数 0

我想写一个tkinter应用程序,它会根据OptionMenu对象的当前状态自动更新值。这是我到目前为止所知道的

代码语言:javascript
运行
复制
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()

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-11 12:40:07

您可以简单地将clicked分配给Labeltextvariable,然后每当选择一个选项时,标签都会更新:

代码语言:javascript
运行
复制
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()
票数 1
EN

Stack Overflow用户

发布于 2020-08-11 05:58:32

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

最好使用config()函数来更改item的属性,另一件重要的事情是不要在变量声明的同一行中pack()对象(在本例中是Label )。

这样,您就可以更改文本了。这是你更新的代码!

代码语言:javascript
运行
复制
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()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63347255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档