PyQT如何在QPushbutton上创建QEvent.Enter?

时间:2011-08-03 04:00:45

标签: pyqt

我的主要目标是,我有一个Qpushbutton和一个框架,我想要做的是。当我将鼠标悬停在Qpush按钮上时,框架将显示出来。使用可见的假。关于如何举办活动,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:4)

这是一个简单的例子,类似于我在上一个问题中给出的例子:

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()