2

Python を使用してテスト スクリプトを作成しています。スクリプトの実行中にユーザーにメッセージを表示する必要があります。これは、ユーザーが「OK」をクリックするのを待たない「テスト結果を保存中」など、ステータスの更新を行うためのものです。基本的に、ユーザーがしなくてもポップアップして閉じるメッセージを作成する必要があります。

現在、GUI を追加するために easygui モジュールを使用しています。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.pyまたはJenkinsを検討 してください。

于 2012-01-12T21:36:09.227 に答える
0

textbox()GUIの作成を開始した場合は、機能を使用できるはずです。別のダイアログ ウィンドウを表示するのではなく、テキスト ボックスをステータス メッセージの場所として使用できます。

textbox() hereの次の説明を得ました:

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

いくつかのテキストをプロポーショナル フォントで表示し、単語の区切りで改行します。この関数は、一般的な文章を表示するのに適しています。テキスト パラメータは、文字列、またはテキスト ボックスに表示される行のリストまたはタプルである必要があります。

于 2012-01-12T13:37:42.850 に答える