1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| class MyFrame(QtGui.QFrame):
# Squelette donné par Brian Kelley sur la liste de PyQt.
def __init__(self, parent, titre, pixmapfile):
QtGui.QFrame.__init__(self, parent, QtCore.Qt.Tool)
# QtCore.Qt.X11BypassWindowManagerHint | QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint | QtCore.Qt.Tool
self.setWindowTitle(titre)
# On définit la taille de la frame qui doit s'ajuster à celle de l'image.
# Pour les grosses images, cela ne fonctionnera pas.
# Ceci demanderait donc une amélioration,
# soit via un redimensionnement de l'image,
# soit via l'utilisation de scroolbars. A voir...
rect = QtCore.QRect(QtGui.QCursor.pos(), pixmapfile.size())
# setRectangle n'est pas la bonne méthode...
# Comme une QFrame est dérivée d'un QWidget,
# il faut s'attarder sur les méthodes de ces derniers.
self.setGeometry(rect)
# On empêche que le cadre soit redimensionnable.
self.setFixedSize(pixmapfile.size())
label = QtGui.QLabel(self)
label.setPixmap(pixmapfile)
label.show()
self.timer = QtCore.QTimer()
self.connect( self.timer, QtCore.SIGNAL("timeout()"),
self, QtCore.SLOT("hide()") )
def showEvent(self, evt):
self.timer.start(10000) # 10 seconds
QtGui.QFrame.showEvent(self, evt) |
Partager