gpt4 book ai didi

python - 如何更新 OptionMenu 的命令

转载 作者:行者123 更新时间:2023-11-28 20:39:37 25 4
gpt4 key购买 nike

我正在尝试在实例化后设置或更新 OptionMenu 的命令。

widget.configure(command=foo) 语句适用于 ButtonCheckButton,但不适用于 OptionMenu

以下代码引发此错误:_tkinter.TclError: unknown option "-command"

from Tkinter import Tk, OptionMenu, StringVar

root = Tk()
var = StringVar()

def foo(val):
print val, var.get()

widget = OptionMenu(root, var, "one", 'two')
widget.configure(command=foo)
widget.pack()
root.mainloop()

最佳答案

好问题!这是一件好事,我以前从未在我的任何一个项目中这样做过,因为(除非有人在这里证明我错了)一旦 OptionMenu 小部件已经定义,您就不能设置/更新它的命令。

如果 Tkinter 希望您能够做到这一点,它肯定会包含它以供 .configure() 编辑

有一个名为 .keys() 的便捷函数,您可以使用小部件对象调用该函数以查看可与 .configure() 一起使用的所有可用特征。

按钮示例:

from tkinter import *

master = Tk()

def callback():
print ("click!")

b = Button(master, text="OK", command=callback)
print (b.keys()) #Printing .keys()
b.pack()

mainloop()

结果是: enter image description here

请注意在这个巨大的键列表中,'command' 是如何出现在第二行的?这是因为按钮的 command 可以在 .configure()

中使用

选项菜单示例:

from tkinter import *

root = Tk()
var = StringVar()

def foo(val):
print ("HI")

widget = OptionMenu(root, var, "one", 'two')
print(widget.keys())
widget.pack()
root.mainloop()

结果是: enter image description here

注意这次第 2 行没有 'command'。这是因为您无法使用 OptionMenu 小部件配置 command

希望这个问题不会对你的程序造成太大的阻碍,我希望我的回答能帮助你更好地理解!

关于python - 如何更新 OptionMenu 的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37704176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com