Rou*_*use 3 python tkinter optionmenu
我正在开发一个简单的 Python-Tkinter 应用程序。这是我现在拥有的代码的简化。
from Tkinter import *
root = Tk()
def function(x):
if x == "yes":
a.set("hello")
else:
a.set("bye")
#-----------------------------
a = StringVar()
a.set("default")
oc = StringVar(root)
oc.set("Select")
o = OptionMenu(root, oc, "yes", "no", command=function)
o.pack()
z = a.get()
print z # prints default
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
我希望这段代码在控制台上打印“hello”或“bye”,但它却打印“default”。
我一直在努力让这项工作成功,但不知何故我无法弄清楚。如果我直接调用该函数而不是使用选项菜单小部件,则代码可以正常工作:
z = function("yes")
print z #prints hello
Run Code Online (Sandbox Code Playgroud)
或者:
z = function("no")
print z #prints bye
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下为什么当我使用 Optionmenu 小部件时它不打印“你好”或“再见”。我该如何修复它,以便我可以使用变量 z 而不更改该行上方的部分?
谢谢!
from Tkinter import *
root = Tk()
a = StringVar()
a.set("default")
oc = StringVar(root)
oc.set("Select")
def function(x):
if x == "yes":
a.set("hello")
print a.get()
else:
a.set("bye")
print a.get()
o = OptionMenu(root, oc, "yes", "no", command=function)
o.pack()
z = a.get()
print z
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
OptionMenu 现在在 OptionMenu 选择更改时执行function- 如果选项菜单显示为“yes”,function则以“yes”作为其参数执行,并设置a为“hello”,并将a所有其他选项设置为“bye”。
| 归档时间: |
|
| 查看次数: |
7510 次 |
| 最近记录: |