0
내 파이에 연결된 작은 디스플레이가 있습니다. gpio 헤더의 두 이벤트 사이의 시간을 측정하는 Python 스크립트가 있습니다. 이 시간을 표시하고 싶습니다 (이 시간을 얻으려면 스크립트가 완벽하게 작동합니다). 이를 위해 tkinter
창을 만들었습니다. 이 시간을 표시해야하는 레이블이 있습니다. 프로그램이 GPIO 핀을 계속 수신 할 수 있도록하기 위해 GUI 함수를 스레드했습니다. 내가 잘못 뭐하는 거지update threaded tkinter gui
global beattime
beattime['text'] = str(time)
: 나는이 라인을 추가 이후
def guiFunc():
gui = Tk()
gui.title("Test")
gui.geometry("500x200")
app = Frame(gui)
app.grid()
beattime = Label(app, text = "test")
beattime.grid()
gui.mainloop()
gui_thread = threading.Thread(target = guiFunc)
gui_thread.start()
while True:
time.sleep(.01)
if (GPIO.input(3)):
time = trigger() #trigger is the function to trigger the 'stopwatch'
global beattime
beattime['text'] = str(time)
while GPIO.input(3): #'wait' for btn to release (is there a better way?)
print "btn_pressed"
그래서 프로그램은 아무것도되지 않는 이유는 무엇입니까?
그러나 다른 스레드를 사용하여 gui 명령을 호출하면 안되는데 어떻게해야합니까? gui mainloop은 모든 것을 차단합니다. – jukisu
스레드 부분에 타이머 부분을 쓰지 만 직접 gui 함수를 호출하지 마십시오. 대신 대기열, 소켓, 변수 등을 사용하십시오. – Dashadower
변수에 새로운 값을 쓰려고하는데'while True :'루프가 실행되지 않습니다. – jukisu