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

2 投票
2 回答
9523 浏览
提问于 2025-04-17 10:05

我正在用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

撰写回答