2

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

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

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

卡维莎

4

2 回答 2

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

于 2012-01-12T21:36:09.227 回答
0

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

textbox() 我在这里得到以下描述:

文本框(msg='',title='',text='',codebox=0)

以比例字体显示一些文本,并在断字处换行。此功能适用于显示一般书面文字。text 参数应该是一个字符串,或者是要在文本框中显示的行的列表或元组。

于 2012-01-12T13:37:42.850 回答