ボタンが押された回数を表示する小さなソフトウェアを作成しようとしています。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)
あなたのwhile True
ループは限りGUIが閉じられていないとして活躍されることはありません。それを削除して、代わりに新しい関数を定義してみてください。
def ctr():
global input_state, buttonPin, Counter
input_state = GPIO.input(buttonPin)
if (not input_state):
Counter += 1
print(Counter)
root.after(30, ctr)
前にスクリプトの本体で一度呼び出しますroot.mainloop()
:
ctr()
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加