9

学生がRFIDタグをスキャンすると、tkmessageboxポップアップを使用して歓迎メッセージを表示しながら出席が記録される自動出席システムを開発しています。ユーザーはマウスやキーボードを制御できないため、メッセージを 2 秒間表示したままにして、メッセージ ボックスを削除したいと考えています。提案されたように tkmessagebox ポップアップを閉じる方法はありますか?

4

4 に答える 4

2

tkMessageBoxこれによりモーダルダイアログが作成され、ウィジェットIDにアクセスできないため(プログラムで破棄できるため)、それを実行できるとは思いません。

しかし、独自のトップ レベル ウィンドウを作成し、ウェルカム メッセージを追加して、一定期間後に閉じることは難しくありません。このようなもの:

from Tkinter import *

WELCOME_MSG = '''Welcome to this event.

Your attendance has been registered.

Don't forget your free lunch.'''
WELCOME_DURATION = 2000

def welcome():
    top = Toplevel()
    top.title('Welcome')
    Message(top, text=WELCOME_MSG, padx=20, pady=20).pack()
    top.after(WELCOME_DURATION, top.destroy)

root = Tk()
Button(root, text="Click to register", command=welcome).pack()

root.mainloop()

イベント ハンドラーを RFID 検出に接続する必要があります。これは上記のコードのボタンによってシミュレートされ、イベント ハンドラーはwelcome()関数です。welcome()メッセージを含む最上位のウィジェットで作成されます。トップレベルのウィジェットは、2000 ミリ秒 (2 秒) 後に破棄され、これを使用し.after()て、遅延後に呼び出されるコールバック関数が登録されます。

于 2015-05-14T12:09:38.210 に答える