簡體   English   中英

在非主線程中顯示對話框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM