def show_next_message(self) -> None:
"""Show next statusbar message.
If the status bar has not been updated for 1 second, display the next
message. If no messages are available, clear the status bar after it
has been displayed for 5 seconds.
"""
current_time = time.time()
time_diff = 5 if len(self.queued_messages) < 1 else 1
if self.last_update and current_time - time_diff < self.last_update:
return
if len(self.queued_messages) == 0:
QQmlProperty.write(self.status_text, "text", "")
self.last_update = None
else:
message = self.queued_messages.pop(0)
if message['type'] == 'error':
statusbar_message = "<font color='red'>? {}</color>".format(
message['message'])
notification_message = '? {}'.format(message['message'])
else:
statusbar_message = message['message']
notification_message = message['message']
QQmlProperty.write(self.status_text, "text", statusbar_message)
if self.window.window.windowState() == Qt.WindowMinimized or not self.window.window.isVisible():
try:
Popen(['notify-send', 'Pext', notification_message])
except Exception as e:
print("Could not open notify-send: {}. Notification follows after exception:".format(e))
traceback.print_exc()
print(notification_message)
self.last_update = current_time
评论列表
文章目录