python - 仅在调用函数时继续
问题描述
用户应该从下拉菜单的列表中选择一个事项。然后它会用 Turtle mudole 给出这个问题的示意图,我在这里不包括在内。我希望它等待计算
m = n - 1
在用户的输入被注册之后。
from tkinter import *
OPTIONS = ['methaan','ethaan','propaan','butaan']
master = Tk()
variable = StringVar(master)
variable.set(OPTIONS[0]) # default value
w = OptionMenu(master, variable, *OPTIONS)
w.pack()
def ok():
variable.get()
if variable == 'methaan':
n = 1
elif variable == 'ethaan':
n = 2
elif variable == 'propaan':
n = 3
elif variable == 'butaan':
n = 4
button = Button(master, text="OK", command=ok)
button.pack()
m = n - 1
print(m)
mainloop()
它返回n未定义。
期望的结果
# 0 to 3 depending on what matter you choose.
先感谢您。
解决方案
在函数本身内移动最后两行,因为如果它们在mainloop
.
这是完整的代码:
from tkinter import *
OPTIONS = ['methaan','ethaan','propaan','butaan']
master = Tk()
variable = StringVar(master)
variable.set(OPTIONS[0]) # default value
w = OptionMenu(master, variable, *OPTIONS)
w.pack()
def ok():
if variable.get() == 'methaan':
n = 1
elif variable.get() == 'ethaan':
n = 2
elif variable.get() == 'propaan':
n = 3
elif variable.get() == 'butaan':
n = 4
m = n - 1
print(m)
button = Button(master, text="OK", command=ok)
button.pack()
mainloop()