Python:从函数中获取选项?

时间:2018-02-24 01:44:22

标签: python user-interface tkinter scope

我正在使用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

但是这没用。有谁知道我哪里出错了?感谢。

3 个答案:

答案 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