有没有办法用 PyQt5 捕捉按钮上的悬停事件信号? [复制]
Posted
技术标签:
【中文标题】有没有办法用 PyQt5 捕捉按钮上的悬停事件信号? [复制]【英文标题】:Is there any way to catch a hover event signal on a button with PyQt5? [duplicate] 【发布时间】:2021-01-20 12:13:29 【问题描述】:我知道之前有人问过这个几乎完全相同的问题 (How to Catch Hover and Mouse Leave Signal In PyQt5)
但我并不真正了解如何或在何处实现它,我只是需要澄清一下。
【问题讨论】:
您能说明一下您需要什么说明吗?链接的帖子已经清楚地解释了它是如何工作的:您创建一个小部件的子类并实现这两种方法。你有什么不明白的? 【参考方案1】:基本上,用户所做的是他创建了第二个名为 button 的类,他用它来创建一个按钮。例如,这是代码:
class Button(QPushButton):
def __init__(self, parent=None):
super(Button, self).__init__(parent)
# other initializations...
def enterEvent(self, QEvent):
print("enter")
pass
def leaveEvent(self, QEvent):
print("leave")
pass
现在,为了用这个类创建一个按钮,我们需要做的就是像这样调用这个类:
self.buttn = Button(self)
这将使用前一个类创建一个按钮。因此,这就是整个代码的样子:
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
import PyQt5.QtGui
from PyQt5.QtCore import QEvent
import sys
class Button(QPushButton):
def __init__(self, parent=None):
super(Button, self).__init__(parent)
# other initializations...
def enterEvent(self, QEvent):
print("enter")
pass
def leaveEvent(self, QEvent):
print("leave")
pass
class Main(QWidget):
def __init__(self):
super(Main,self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("Button")
self.setGeometry(400,400,300,260)
self.buttn = Button(self)
self.buttn.setText("Button") #text
self.buttn.clicked.connect(self.close)
self.buttn.move(100,100)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Main()
ex.show()
sys.exit(app.exec_())
【讨论】:
以上是关于有没有办法用 PyQt5 捕捉按钮上的悬停事件信号? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PyQt5 中捕获 QTableWidget 上的左右鼠标单击事件?