控件上有两个label,我需要鼠标移动到label2的时候指针变化为十字的
时间: 2024-02-01 08:14:41 浏览: 24
您可以使用QCursor类中的setShape()方法将指针设置为十字形。在QWidget的mouseMoveEvent()方法中,检查鼠标是否位于Label2上,并根据需要设置指针形状。以下是一个示例实现:
```python
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QCursor
from PyQt5.QtWidgets import QLabel, QWidget
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.label1 = QLabel('Label 1', self)
self.label1.move(10, 10)
self.label2 = QLabel('Label 2', self)
self.label2.move(50, 50)
self.label2.setMouseTracking(True) # 开启鼠标追踪
def mouseMoveEvent(self, event):
if event.pos() in self.label2.rect():
QCursor.setShape(Qt.CrossCursor)
else:
QCursor.unsetCursor()
```
在这个示例中,我们创建了一个自定义QWidget并在其中添加了两个QLabel。我们将label2的鼠标跟踪设置为True以便在鼠标移动到该标签上时能够检测到。然后,在mouseMoveEvent()方法中,我们检查鼠标是否位于label2的边界框内,并根据需要设置指针形状。如果鼠标不在label2上,我们使用unsetCursor()方法将指针恢复为默认形状。