Python- 在代码中显示可关闭的消息框(无需用户干预)
我正在用Python创建测试脚本。我需要在脚本运行时显示一条消息给用户。这是为了提供一些状态更新,比如“正在保存测试结果”,这条消息不应该让用户点击“确定”后才能继续。简单来说,我需要创建一个消息框,它会自动弹出并关闭,而不需要用户去操作。
目前,我正在使用easygui模块来添加图形界面。Easygui可以用来创建这样的消息框,但它们不能在代码中关闭,需要等用户手动关闭后,脚本才能继续运行。
提前感谢你的时间和帮助。
Kavitha
2 个回答
0
如果你开始创建图形用户界面(GUI),那么你应该能使用 textbox()
这个功能。文本框可以用来显示状态消息,而不是让一个单独的对话框弹出来。
我在这里找到了关于 textbox()
的描述:这里:
textbox(msg='', title=' ', text='', codebox=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.py或者Jenkins。