Python-显示可在代码中关闭的消息框(无用户干预)

时间:2012-01-12 12:51:26

标签: python easygui

我正在使用Python创建测试脚本。我需要在脚本继续运行时向用户显示一条消息。这是为了进行一些状态更新,例如:“保存测试结果”,不应等待用户点击“确定”。基本上,我需要创建一个弹出和关闭的消息,而无需用户执行此操作。

目前,我正在使用easygui模块添加GUI.Easygui可以用于创建这样的消息框但是它们不能在代码中关闭,需要等待用户关闭它们才能使脚本继续运行。

提前感谢您的时间和帮助。

Kavitha

2 个答案:

答案 0 :(得分:1)

要在超时时强行删除使用easygui创建的消息框,您可以使用.after()方法:

from Tkinter    import Tk
from contextlib import contextmanager

@contextmanager
def tk(timeout=5):
    root = Tk() # default root
    root.withdraw() # remove from the screen

    # destroy all widgets in `timeout` seconds
    func_id = root.after(int(1000*timeout), root.quit)
    try:
        yield root
    finally: # cleanup
        root.after_cancel(func_id) # cancel callback
        root.destroy()

实施例

import easygui

with tk(timeout=1.5):
    easygui.msgbox('message') # it blocks for at most `timeout` seconds

easygui不太适合您的用例。考虑 unittestgui.pyJenkins

答案 1 :(得分:0)

如果您已开始创建GUI,则应该能够使用textbox()功能。文本框可以用作状态消息的位置,而不是显示单独的对话窗口。

我得到了textbox() here的以下说明:

  

textbox(msg ='',title ='',text ='',codebox = 0)

     

在a中显示一些文字   比例字体与换行换行。这个功能是   适合显示一般书面文字。文本参数   应该是一个字符串,或者要在其中显示的行的列表或元组   文本框。