moveMouseEvent在不同小部件上的不同行为

时间:2018-01-07 12:22:16

标签: python python-3.x qt pyqt pyqt5

在研究事件处理,我注意到mouseMoveEvent并实现它QTextBrowser和QPushButton,其结果是在一个manner.When我悬停aroung QTextBrowser mouseMoveEvent不同的QPushButton的情况下得到了activated.But mouseMove事件发生时,鼠标点击继续后光标悬停在周围。只要释放单击鼠标悬停在按钮上就没有效果。 为什么存在这样的差异?我应该怎么做才能在QPushButton上实现相同的功能,即在没有mouseKeypressed的情况下激活事件

class window35(QtWidgets.QMainWindow):
    def __init__(self):
        super(window35, self).__init__()
        myWidget=QtWidgets.QWidget()
        self.Hbox=QtWidgets.QHBoxLayout()
        self.btn=QtWidgets.QPushButton("HAA BHYI\nBUTTON")
        self.textBrowser=QtWidgets.QTextBrowser()
        self.Hbox.addWidget(self.btn)
        self.Hbox.addWidget(self.textBrowser)
        myWidget.setLayout(self.Hbox)
        self.setCentralWidget(myWidget)
        self.btn.mouseMoveEvent=self.mouse_move
        self.textBrowser.mouseMoveEvent=self.text_browser_move
#        print(type(self.btn.mouseMoveEvent))

        self.show()
    def mouse_move(self,event):
        print("hello btn")
        try:
            QtWidgets.QPushButton.mouseMoveEvent(self.btn,event)
        except Exception as E:
            print(E)

    def text_browser_move(self,event):
        print("hello list")
        try:
            QtWidgets.QTextBrowser.mouseMoveEvent(self.textBrowser,event)
        except Exception as E:
            print(E)




app=QtWidgets.QApplication([])
ex=window35()
sys.exit(app.exec_())

我注意到listWidget也像QPushButton一样工作 谢谢:))

1 个答案:

答案 0 :(得分:0)

感谢@ G.M. 我刚刚添加了

self.btn.setMouseTracking(True)

达到预期的效果