Python - tkinter 如何将 if 语句与 get 函数一起使用?

标签 python tkinter

我知道标题不太好理解,所以我在这里解释一下。

基本上如果我这样做

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/

相关文章:

python - 无法在 Python 中导入数组库

python - 从由分号分隔的键值对文件生成字典

Python Tkinter 程序无法正确将数据发送到我的文本文件

c++ - Python 还是 C++?移动设备编程

python - 按属性值排序对象列表,属性值的顺序在另一个列表中

python - Python 中的 Hangman - 根据索引 python 替换单个字符串中的多个字符

python - 如何制作一个连接到 sqlite3 数据库的可执行 python tkinter 文件

python - 即使变量发生变化,单击按钮时更改文本颜色也不起作用

python - 如何在函数结束后停止 tkinter

python - 基于人脸识别更新标签