首页 > 解决方案 > 在 pi 上同时运行 python tkinter 按钮和按钮

问题描述

我有一个 python 程序,它将在指定时间显示一个包含 tkinter 按钮的帧(在连接到 Raspberry pi 的 LCD 上)。当用户按下 tkinter 按钮时,将调用一个函数来关闭 LED 和蜂鸣器。我还有一个调用相同功能的物理按钮。问题是,我不能同时运行 tkinter 和物理按钮。目前使用下面的代码,只有 tkinter 按钮在按下时能够调用该函数。但是当我按下按钮时,什么也没有发生(没有调用函数;LED 和蜂鸣器保持打开状态)。

我的问题是我如何能够同时运行两个按钮?这样用户可以按下 tkinter 按钮或按钮来关闭 LED 和蜂鸣器。

....
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(18,GPIO.IN, pull_up_down=GPIO.PUD_UP)

def alarm_message(number):
    root.frame = Frame(bg="red")
    root.frame.grid()
    change_colour()
    title_message=Label(root.frame, font = "Arial 150 ",fg='white',bg='black')
    title_message.grid(row=0,column=0,padx=80,pady=170)
    input_state = GPIO.input(18)
    if (number==1):
        title_message.config(text="TAKE YOUR \n MORNING \n MEDICATION ")
        taken_button = Button(root.frame, text="Done",command=lambda:button_pressed(1), font=("Arial", 80),bd=10)  
        taken_button.grid(row=0,column=1,padx=45,pady=100)
        if input_state == False:       
            print('Button pressed: Physical1')
            button_pressed(1)
            time.sleep(0.2)

标签: pythontkinterraspberry-pi

解决方案


只需将最后第四行的 False 更改为 True 这肯定会起作用


推荐阅读