在研究事件处理,我注意到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一样工作 谢谢:))
答案 0 :(得分:0)
感谢@ G.M. 我刚刚添加了
self.btn.setMouseTracking(True)
达到预期的效果