我知道标题不太好理解,所以我在这里解释一下。
基本上如果我这样做
if variable.get() == "Select Website":
print("ok")
它会打印出“ok”,但如果我将其从“选择网站”更改为“Fareham”以及下拉框中的选项更改为“Fareham”,它不会注意到它发生了变化。如果我希望它注意到它发生了变化,我需要执行一个 while 循环,但这会首先停止脚本运行。
如果变量更改为“Fareham”,如何使脚本打印出“ok”?
当前代码:
import tkinter
sites = [
"Fareham",
"Hants",
"Southampton",
"Eastleigh",
"Havant",
"Gosport",
]
win = tkinter.Tk()
win.geometry("500x500")
variable = tkinter.StringVar(win)
variable.set("Select Website")
drop = tkinter.OptionMenu(win, variable, *sites)
drop.pack()
if variable.get() == "Fareham":
print("ok")
win.mainloop()
最佳答案
您可以通过将回调函数关联到下拉菜单来做到这一点:
import tkinter
def your_callback(*args):
if args[0] == "Fareham":
print("ok")
sites = [
"Fareham",
"Hants",
"Southampton",
"Eastleigh",
"Havant",
"Gosport",
]
win = tkinter.Tk()
win.geometry("500x500")
variable = tkinter.StringVar(win)
variable.set("Select Website")
drop = tkinter.OptionMenu(win, variable, *sites, command = your_callback)
drop.pack()
win.mainloop()
关于Python - tkinter 如何将 if 语句与 get 函数一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53264079/