0
我有一個小顯示器連接到我的pi。 現在我有一個Python腳本,用於測量兩個gpio頭部事件之間的時間間隔。 我想顯示這個時間(腳本得到這個時間是完美的)。爲此我創建了一個tkinter
窗口。在那裏,我有一個應該顯示這個時間的標籤。 我已經編寫了gui函數,使程序仍然可以聽GPIO引腳。更新線程tkinter gui
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"
所以程序沒有做任何事情,因爲我添加這些行:
global beattime
beattime['text'] = str(time)
我在做什麼錯?
但是,如果我不應該使用不同的線程來調用GUI命令,我該如何做到這一點? gui主循環會阻止一切。 – jukisu
在線程上寫入定時器部分,但不直接從它調用gui函數。相反,使用隊列,套接字,變量等。它只是一個建議。 – Dashadower
我的意思是我應該如何向變量寫入新值是'while True:'循環沒有執行? – jukisu