Я разрабатываю автоматизированную систему посещаемости, где, когда студент просматривает свой тег RFID, его посещаемость записывается, показывая приветственное сообщение, используя всплывающее окно tkmessagebox. Пользователь не будет иметь контроль над мышью или клавиатурой, и я хотел бы оставить сообщение в течение 2 секунд и удалить окно сообщения. Есть ли способ закрыть всплывающее окно tkmessagebox, как это было предложено?закрытие tkmessagebox через некоторое время в python
ответ
Я не думаю, что это можно сделать с помощью tkMessageBox
, потому что это создает модальный диалог, и у вас нет доступа к идентификатору виджета (чтобы он мог быть программно уничтожен).
Но нетрудно создать собственное окно верхнего уровня, добавить к нему приветственное сообщение, а затем закрыть его через определенный промежуток времени. Что-то вроде этого:
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()
, который регистрирует функцию обратного вызова, которая будет вызываться после задержки.
- 1. Закрытие приложения для Android на некоторое время
- 2. Автоматическое закрытие окна через некоторое время с помощью JQuery
- 3. Закрытие эмулятора через некоторое время и отображение ошибки
- 4. Python Tkinter - скрыть виджет через некоторое время
- 5. Процессы многопроцессорности Python засыпают через некоторое время
- 6. скрипт python останавливается через некоторое время
- 7. Запуск uWSGI/Flask/Python через некоторое время
- 8. file_put_contents через некоторое время
- 9. java.lang.NoClassDefFoundError через некоторое время
- 10. Уведомление через некоторое время
- 11. Время соединения MySQL через некоторое время (Python, MySQL, FLASK)
- 12. Eclipse перестает выделять ссылки через некоторое время
- 13. изменить изображение в pygame через некоторое время
- 14. RadAjaxLoadingPanel исчезает через некоторое время
- 15. Переменная сбрасывается через некоторое время
- 16. Выполнение заявки через некоторое время
- 17. Обработчик останавливается через некоторое время
- 18. NotificationListenerService StopWorking через некоторое время
- 19. Ошибка WMI через некоторое время
- 20. Неудачная сессия через некоторое время
- 21. снятие изображения через некоторое время
- 22. UILocalNotification повторяется через некоторое время
- 23. Отображение UIAlertView через некоторое время
- 24. остановка приложения через некоторое время
- 25. Скрыть подсказку через некоторое время
- 26. BroadcastReceiver остановился через некоторое время
- 27. Сервлет отключается через некоторое время
- 28. ESP8266 отключается через некоторое время
- 29. закрыть активность через некоторое время
- 30. Accelerometr останавливается через некоторое время