pyqt5怎么样在主界面类定义的Qlabel中用鼠标点击得到点坐标并画各种几何图形
时间: 2024-05-07 08:23:53 浏览: 10
可以使用QLabel的mousePressEvent方法来获取鼠标点击的点坐标,然后使用QPainter在QLabel中画各种几何图形。以下是示例代码:
```
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel
from PyQt5.QtGui import QPainter, QPen
from PyQt5.QtCore import Qt
class MyLabel(QLabel):
def mousePressEvent(self, event):
if event.button() == Qt.LeftButton:
point = event.pos()
# 在QLabel中画一个矩形
painter = QPainter(self.pixmap())
painter.setPen(QPen(Qt.red, 2, Qt.SolidLine))
painter.drawRect(point.x()-10, point.y()-10, 20, 20)
self.update()
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.label = MyLabel(self)
self.label.setGeometry(10, 10, 200, 200)
self.label.setPixmap(QPixmap(200, 200))
self.setCentralWidget(self.label)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
在这个示例代码中,我们定义了一个MyLabel类,继承自QLabel,并重写了mousePressEvent方法。当鼠标左键在标签上点击时,我们获取了鼠标点击的点坐标,然后使用QPainter在标签上画了一个矩形。主窗口中创建了一个MyLabel实例并将其设置为中心窗口。运行程序,你就可以在主窗口中画矩形了。