PyQTQ HoverEvent на кнопке Qpushton? - PullRequest
0 голосов
/ 02 августа 2011

Привет, я искал образец по моей проблеме.У меня есть кнопка, она сделана с помощью кодов. Я создал 10 из них, и теперь моя проблема в том, что мне нужно установить Hover Event.Я читал QHover , но все еще не могу сделать правильный код.образец не может быть понят новичком, пожалуйста, помогите мне.действительно нужно

РЕДАКТИРОВАТЬ: У меня есть поиск больше ответов на этот вопрос.я обнаружил, что мне нужно настроить QEvent.HoverEnter это правильно?

Ответы [ 2 ]

1 голос
/ 03 августа 2011

Я вложил в подкласс mouseMoveEvent QPushButton, прежде чем выяснить, когда мышь наведена на него.Вот пример:

from PyQt4.QtGui import QApplication, QMainWindow, QPushButton, \
            QVBoxLayout, QWidget

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

    def mouseMoveEvent(self, event):
        print 'Mouse moved!'

class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        QMainWindow.__init__(self, parent) 
        button = HoverButton('Test')
        centralWidget = QWidget()
        vbox = QVBoxLayout(centralWidget)
        vbox.addWidget(button)
        self.setCentralWidget(centralWidget)

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

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

Вы можете заставить свой объект HoverButton излучать сигнал, а затем подключать другие функции к сигналу в главном окне.

Если вы просто хотите узнать, когда мышьвходит в QPushButton и покидает его, а затем заново реализует методы enterEvent и exitEvent .

0 голосов
/ 12 ноября 2013

В вашем окне, содержащем кнопки, вы можете реализовать свой собственный фильтр событий

class MyWidget(QWebView):
    def __init__(self):
        super(MyWidget, self).__init__()
        self.installEventFilter(self)

    def eventFilter(self, qobject, qevent):
        qtype = qevent.type()
        if qtype == QEvent.HoverMove:
           ... hover logic depending in which qobject, since you have 10 buttons
        return super(MyWidget, self).eventFilter(qobject, qevent)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...