我試圖讓兩個按鈕在 Tkinter GUI 中執行兩個獨立的功能,它們都同時運行。我無法理解如何實作它。我試圖從許多教程中建立這一點,但由于某種原因,這仍然是連續的。任何和所有的幫助表示贊賞。謝謝!
from tkinter import *
import threading
window = Tk()
window.geometry("500x200 460 170")
window.resizable(0, 0)
window.configure(bg='#030818')
screen_size = (61366, 78)
def opencv_code():
print("recorder")
time.sleep(10)
def knob_tracking():
print("recorder1")
def start_opencv():
threading.Thread(target=opencv_code()).start()
def start_knob_tracking():
threading.Thread(target=knob_tracking()).start()
Label(window, text="Microscope", fg="white",bg="#030818",font=("Helvetica", 23, "bold")).pack()
Button(window, text="Recorder", command=start_opencv, bd=0, bg="gray",fg="white",font=("Helvetica", 15, "bold")).place(x=170,y=60)
Button(window, text="Recorder1", command=start_knob_tracking, bd=0, bg="gray",fg="white",font=("Helvetica", 15, "bold")).place(x=170,y=110)
window.mainloop()```
uj5u.com熱心網友回復:
您需要從傳遞給執行緒的函式中洗掉括號,因為您正在呼叫函式,而不是傳遞函式句柄。所以改變:
def start_opencv():
threading.Thread(target=opencv_code()).start()
def start_knob_tracking():
threading.Thread(target=knob_tracking()).start()
到:
def start_opencv():
threading.Thread(target=opencv_code).start()
def start_knob_tracking():
threading.Thread(target=knob_tracking).start()
您可以通過將函式更改為:
def opencv_code():
print("recorder")
time.sleep(10)
print("recorder again")
def knob_tracking():
print("recorder1")
time.sleep(5)
print("recorder1 again")
并按下兩個按鈕。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/418246.html
標籤:
