我正在使用 Python 创建测试脚本。在脚本继续运行时,我需要向用户显示一条消息。这是为了有一些状态更新,例如:“保存测试结果”,不应该等待用户点击“确定”。本质上,我需要创建一个弹出和关闭的消息,而用户不必这样做。
目前,我正在使用 easygui 模块添加 GUI。Easygui 可用于创建此类消息框,但它们无法在代码中关闭,需要等待用户关闭它们才能继续运行脚本。
提前感谢您的时间和帮助。
卡维莎
要在超时时强制删除使用 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.py或Jenkins。
如果您已经开始创建 GUI,您应该能够使用该textbox()
功能。可以将文本框用作状态消息的位置,而不是显示单独的对话框窗口。
textbox()
我在这里得到以下描述:
文本框(msg='',title='',text='',codebox=0)
以比例字体显示一些文本,并在断字处换行。此功能适用于显示一般书面文字。text 参数应该是一个字符串,或者是要在文本框中显示的行的列表或元组。