[英]Showing dialog in non-main thread
我有一個非GUI程序,有時需要向用戶顯示對話框。 問題是我的程序在無限循環中運行,當我在此循環中顯示一個對話框時,程序將暫停執行,直到關閉該對話框為止,這是不希望的,因為我的程序循環是必須始終響應的后台服務。 因此,我嘗試運行在另一個線程中顯示代碼的對話框,但無法正常工作:對話框僅一次/第一次顯示,隨后的調用均未顯示。
我怎么解決這個問題?
這是示例代碼,供您測試情況:
import tkinter
import tkinter.messagebox
import threading
import time
def messageBox():
root=tkinter.Tk()
root.withdraw()
tkinter.messagebox.showinfo('dialog', 'test')
root.destroy()
while True:
threading.Thread(target=messageBox).start()
time.sleep(3)
我在Windows XP上使用Python 3.3.4
我的建議是使對話框成為單獨的腳本,並使用子過程模塊在單獨的過程中顯示對話框。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.