首页 > 解决方案 > 根据 if 语句更改 Tkinter 标签文本?

问题描述

我正在尝试使用 Tkinter 创建一个简单的 GUI。我创建了一个带有文本的标签。当按下按钮(物理)时,应更改此文本。我读到了使用 after() 方法,但它只运行一个方法,它应该总是检查用户输入。

while 1:
    root = tk.Tk()
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(21, GPIO.IN, pull_up_down=GPIO.PUD_UP)
    input_state = GPIO.input(21)

    menutxt = tk.StringVar()
    menuLabel = tk.Label(root, textvariable=menutxt).pack()

    if input_state == False:
        menutxt.set("TEXT2")
    else:
        menutxt.set("TEXT1")
    root.mainloop()

标签: pythonuser-interfacetkinter

解决方案


你不知道什么是循环?你可以试试

root = tk.Tk()
menutxt = tk.StringVar()
menuLabel = tk.Label(root, textvariable=menutxt).pack()
GPIO.setmode(GPIO.BCM)
GPIO.setup(21, GPIO.IN, pull_up_down=GPIO.PUD_UP)
while 1:
    input_state = GPIO.input(21)
    if input_state == False:
        menutxt.set("TEXT2")
    else:
        menutxt.set("TEXT1")
root.mainloop()

推荐阅读