qt 6.2.4 鼠标左键画一个小圆圈
时间: 2023-07-13 21:15:18 浏览: 218
你可以使用Qt的绘图功能来实现在鼠标左键按下时在指定位置画一个小圆圈的功能。下面是一个实现的示例代码:
```c++
#include <QtWidgets>
class MyWidget : public QWidget {
public:
MyWidget(QWidget *parent = nullptr) : QWidget(parent) {
setFixedSize(300, 300);
}
protected:
void mousePressEvent(QMouseEvent *event) override {
if (event->button() == Qt::LeftButton) {
m_lastPos = event->pos();
update();
}
}
void paintEvent(QPaintEvent *event) override {
QPainter painter(this);
painter.setPen(Qt::red);
painter.setBrush(Qt::red);
painter.drawEllipse(m_lastPos, 10, 10);
}
private:
QPoint m_lastPos;
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}
```
在这个示例代码中,我们创建了一个自定义的QWidget,重载了它的mousePressEvent和paintEvent函数。当鼠标左键按下时,我们记录了当前的鼠标位置,然后调用update函数来触发绘图事件。在paintEvent函数中,我们使用QPainter来绘制一个红色的圆形,位置为最后一次记录的鼠标位置,半径为10像素。
这样,当你在程序窗口中按下鼠标左键时,就会在指定位置画一个小圆圈。
阅读全文