【发布时间】:2018-05-26 04:44:30
【问题描述】:
我正在尝试制作一个小软件来显示按下按钮的次数。我使 gui 工作,按钮输入工作,但我无法弄清楚每次按下按钮时如何更新计数器,root.update() 不起作用。 代码:
import RPi.GPIO as GPIO
import time
import os
import Tkinter as tk
from Tkinter import *
root = tk.Tk()
root.overrideredirect(True)
root.overrideredirect(False)
root.attributes('-fullscreen',True)
root.configure(background='black')
root.configure(cursor="none")
buttonPin = 21
GPIO.setmode(GPIO.BCM)
GPIO.setup(buttonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
Counter = 69
w = Label(root, text=Counter, fg="white", bg="black", font=("Helvetica",80))
w.pack()
w.place(relx=0.5, rely=0.5, anchor=CENTER)
last_state = True
input_state = True
root.mainloop()
while True:
input_state = GPIO.input(buttonPin)
if (not input_state):
Counter += 1
print(Counter)
time.sleep(0.3)
【问题讨论】:
-
您所说的按钮是指带有Raspberry的实际机械按钮吗?
-
请注意,
time.sleep也会休眠 GUI。 -
你的while循环在
root.mainloop()之后,所以它只会在root关闭之后执行。所以你应该通过调用after来替换这个while循环,就像在Nae链接的问题中一样。 -
如果您的问题是关于 Raspberry 的,可以编辑问题以包含其标签。因为它的追随者可能会提供更好或具体的解决方案。
标签: python tkinter raspberry-pi