繁体   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