PyQt5 QLabel 实现鼠标悬停、单击、双击
时间: 2023-04-05 10:01:02 浏览: 302
Qt实现双击可编辑的QLabel,按回车或Esc确认
3星 · 编辑精心推荐
您好,关于 PyQt5 QLabel 实现鼠标悬停、单击、双击的问题,可以通过以下代码实现:
```python
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtCore import Qt
class MyLabel(QLabel):
def __init__(self, parent=None):
super().__init__(parent)
self.setMouseTracking(True) # 开启鼠标追踪
def mousePressEvent(self, event):
if event.button() == Qt.LeftButton:
print("左键单击")
elif event.button() == Qt.RightButton:
print("右键单击")
elif event.button() == Qt.MidButton:
print("中键单击")
def mouseDoubleClickEvent(self, event):
if event.button() == Qt.LeftButton:
print("左键双击")
elif event.button() == Qt.RightButton:
print("右键双击")
elif event.button() == Qt.MidButton:
print("中键双击")
def enterEvent(self, event):
print("鼠标进入")
def leaveEvent(self, event):
print("鼠标离开")
if __name__ == '__main__':
app = QApplication([])
widget = QWidget()
label = MyLabel(widget)
label.setText("Hello World!")
widget.show()
app.exec_()
```
以上代码中,我们自定义了一个 MyLabel 类,继承自 QLabel 类,并重写了 mousePressEvent、mouseDoubleClickEvent、enterEvent、leaveEvent 四个方法,分别实现了鼠标单击、双击、进入、离开的事件处理。在主程序中,我们创建了一个 QWidget 窗口和一个 MyLabel 标签,并将标签添加到窗口中,最后启动了应用程序。
阅读全文