我正在使用Python中的Tkinter并使用OptionMenu并希望获得用户选择。
ex1 = StringVar(root)
ex1.set("Pick Option")
box = OptionMenu(root, "one","two","three", command=self.choice)
def choice(self,option):
return choice
当我这样做时它起作用:
print choice
但我可以以某种方式返回它然后将其存储在变量中。例如,在我创建的代码的开头:
global foo
foo = ""
然后尝试:
def choice(self,option):
foo = option
return foo
但是这没用。有谁知道我哪里出错了?感谢。
答案 0 :(得分:0)
这有效,但不确定它是你想要的。
from Tkinter import StringVar
from Tkinter import OptionMenu
from Tkinter import Tk
from Tkinter import Button
from Tkinter import mainloop
root = Tk()
ex1 = StringVar(root)
ex1.set("Pick Option")
option = OptionMenu(root, ex1, "one", "two", "three")
option.pack()
def choice():
chosen = ex1.get()
print 'chosen {}'.format(chosen)
# set and hold using StringVar
ex1.set(chosen)
root.quit()
# return chosen
button = Button(root, text="Please choose", command=choice)
button.pack()
mainloop()
# acess the value from StringVar ex1.get
print 'The final chosen value {}'.format(ex1.get())
答案 1 :(得分:0)
问题是为什么建议您先学习课程并使用它们来编程GUI https://www.tutorialspoint.com/python3/python_classes_objects.htm
{{1}}
答案 2 :(得分:0)
在方法中添加global
语句:
def choice(self,option):
global foo
foo = option