pyqt5鼠标移动绘制好的图形
时间: 2023-08-09 13:01:47 浏览: 235
在PyQt5中,我们可以通过重写QWidget类的mouseMoveEvent()方法来实现鼠标移动时绘制图形的功能。具体步骤如下:
1. 创建一个继承自QWidget的自定义类,比如叫做MyWidget。
2. 在MyWidget类中重写mouseMoveEvent()方法:
```python
def mouseMoveEvent(self, event):
if event.buttons() == QtCore.Qt.LeftButton:
painter = QtGui.QPainter(self) # 创建一个绘图对象
painter.setPen(QtGui.QPen(QtCore.Qt.black, 2)) # 设置绘图对象的画笔
painter.drawEllipse(event.pos(), 10, 10) # 绘制一个椭圆,位置为鼠标的当前位置
```
3. 在主程序中创建一个MyWidget实例,并设置为主窗口的中心部件:
```python
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow()
widget = MyWidget()
window.setCentralWidget(widget)
window.show()
sys.exit(app.exec_())
```
以上代码实现的功能是,在鼠标左键按下并移动时,在窗口中绘制一个黑色边框为2像素的椭圆,椭圆的位置随鼠标的移动而改变。
通过重写mouseMoveEvent()方法,我们可以根据需要实现各种不同的绘制图形的功能。需要注意的是,当鼠标移动时,该方法会频繁地被调用,因此应注意在绘制图形之前调用repaint()方法进行界面刷新,以便在屏幕上显示出绘制的图形。
阅读全文