Katherina
Katherina

Reputation: 2223

PyQT how to make a QEvent.Enter on QPushbutton?

My main goal really is,i have a Qpushbutton and a frame, what im trying to do is. when i hover on a Qpushbutton the frame will show up. using visible false. can somebody help me please on how to make an events?

Upvotes: 2

Views: 4737

Answers (1)

Gary Hughes
Gary Hughes

Reputation: 4510

Here's a quick example, similar to the example I gave in your previous question:

from PyQt4.QtGui import QApplication, QMainWindow, QPushButton, \
            QWidget, QLabel
from PyQt4.QtCore import pyqtSignal            

class HoverButton(QPushButton):
    mouseHover = pyqtSignal(bool)

    def __init__(self, parent=None):
        QPushButton.__init__(self, parent)
        self.setMouseTracking(True)

    def enterEvent(self, event):
        self.mouseHover.emit(True)

    def leaveEvent(self, event):
        self.mouseHover.emit(False)

class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        QMainWindow.__init__(self, parent) 
        self.button = HoverButton(self)
        self.button.setText('Button')
        self.label = QLabel('QLabel uses QFrame...', self)
        self.label.move(40, 40)
        self.label.setVisible(False)       
        self.button.mouseHover.connect(self.label.setVisible)

def startmain():
    app = QApplication(sys.argv)
    mainwindow = MainWindow()
    mainwindow.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    import sys
    startmain()

Upvotes: 6

Related Questions