我正在尝试在实例化后设置或更新 OptionMenu 的命令。
该widget.configure(command=foo)语句适用于Buttonand CheckButton,但不适用于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()
Run Code Online (Sandbox Code Playgroud)
好问题!这是一件好事,我以前从未在任何一个项目中这样做过,因为(除非有人证明我错了)一旦定义了 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()
Run Code Online (Sandbox Code Playgroud)
请注意,在这个巨大的键列表中,'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()
Run Code Online (Sandbox Code Playgroud)
'command'请注意,这次第 2 行没有。这是因为您无法command使用 OptionMenu 小部件进行配置。
希望这个问题不会对您的程序造成太大影响,希望我的回答可以帮助您更好地理解!
| 归档时间: |
|
| 查看次数: |
4973 次 |
| 最近记录: |