目前我正在開發 PyQt5 中的 GUI 程式。我的程式有幾個步驟,它們依次運行。完成每個步驟后,我想列印例如Step1 finished然后Step2 finished等等。由于主視窗凍結print不起作用。如果您給我一些解決方案,那將非常有幫助。
uj5u.com熱心網友回復:
一個簡單的解決方案是基于執行緒的解決方案,您可以在完成任務后設定一個事件標志:
import threading
done_flag = threading.Event()
def print_status():
while True:
done_flag.wait()
print("I'm done!")
done_flag.clear()
在你的函式內部,你必須呼叫 .set_flag。這個函式會阻塞,直到你的函式完成(如果你總是呼叫 set_flag)。
順便說一句,在 GUI 應用程式中使用執行緒總是好的做法。這避免了凍結導致主回圈等無法運行。
順便說一句,我建議不要使用原始列印,而是使用日志記錄來提供更多有用的資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/511678.html
