gpt4 book ai didi

python - Tkinter:如何使用 OptionMenu 小部件调用函数?

转载 作者:行者123 更新时间:2023-12-01 05:10:53 25 4
gpt4 key购买 nike

我正在开发一个简单的 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()

我希望这段代码在控制台上打印“hello”或“bye”,但它却打印“default”。

我一直在努力完成这项工作,但不知何故我无法弄清楚。如果我直接调用该函数而不是使用选项菜单小部件,则代码可以正常工作:

z = function("yes")
print z #prints hello

或者:

z = function("no") 
print z #prints bye

有人可以解释一下为什么当我使用选项菜单小部件时它不打印“你好”或“再见”。我该如何修复它,以便我可以使用变量 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()

OptionMenu 执行 function现在,当 OptionMenu 选择更改时 - 如果选项菜单显示“yes”, function以“yes”作为参数执行并设置 a到“你好”并设置 a对于所有其他选项,“再见”。

关于python - Tkinter:如何使用 OptionMenu 小部件调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24244253/

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