39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
|
from PyQt4 import QtCore, QtGui
|
||
|
from Queue import Queue
|
||
|
from time import time
|
||
|
|
||
|
class BMStatusBar(QtGui.QStatusBar):
|
||
|
duration = 10000
|
||
|
deleteAfter = 60
|
||
|
|
||
|
def __init__(self, parent=None):
|
||
|
super(BMStatusBar, self).__init__(parent)
|
||
|
self.important = []
|
||
|
self.timer = self.startTimer(BMStatusBar.duration)
|
||
|
self.iterator = 0
|
||
|
|
||
|
def timerEvent(self, event):
|
||
|
while len(self.important) > 0:
|
||
|
self.iterator += 1
|
||
|
try:
|
||
|
if time() > self.important[self.iterator][1] + BMStatusBar.deleteAfter:
|
||
|
del self.important[self.iterator]
|
||
|
self.iterator -= 1
|
||
|
continue
|
||
|
except IndexError:
|
||
|
self.iterator = -1
|
||
|
continue
|
||
|
super(BMStatusBar, self).showMessage(self.important[self.iterator][0], 0)
|
||
|
break
|
||
|
|
||
|
def addImportant(self, message):
|
||
|
self.important.append([message, time()])
|
||
|
self.iterator = len(self.important) - 2
|
||
|
self.timerEvent(None)
|
||
|
|
||
|
def showMessage(self, message, timeout=0):
|
||
|
super(BMStatusBar, self).showMessage(message, timeout)
|
||
|
|
||
|
def clearMessage(self):
|
||
|
super(BMStatusBar, self).clearMessage()
|