pyqt mousemoveEvent
时间: 2023-11-22 13:06:13 浏览: 164
在PyQt中,可以通过重写`mousemoveEvent`事件来监测鼠标移动。如果想要实时监测鼠标,需要将`setMouseTracking`设置为`True`。如果在重写`mousemoveEvent`的widget中设置了`self.setMouseTracking(True)`仍然无法生效,可以尝试在主窗体中一起加入。
以下是一个简单的例子,演示如何在PyQt中使用`mousemoveEvent`事件:
```python
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QPen, QColor
from PyQt5.QtCore import Qt
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.setMouseTracking(True) # 开启鼠标跟踪
def mouseMoveEvent(self, event):
x = event.x()
y = event.y()
print(f"鼠标移动到了 ({x}, {y})")
def paintEvent(self, event):
painter = QPainter(self)
painter.setPen(QPen(QColor(255, 0, 0), 5))
painter.drawLine(0, 0, self.width(), self.height())
painter.drawLine(self.width(), 0, 0, self.height())
if __name__ == '__main__':
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
```
当鼠标移动到窗口中时,会在控制台输出鼠标的坐标。同时,窗口中会画出一条红色的对角线。
阅读全文