qt代码实现在屏幕上点击点依次连接生成一条线
时间: 2024-05-04 11:15:16 浏览: 10
好的,这是一个关于 Qt 代码实现在屏幕上点击点依次连接生成一条线的问题。可以参考以下代码:
```cpp
// 新建一个继承自 QWidget 的类
class DrawLineWidget : public QWidget
{
public:
DrawLineWidget(QWidget *parent = nullptr) : QWidget(parent)
{
setFixedSize(400, 400);
setMouseTracking(true); // 开启鼠标追踪,以便能够获得鼠标移动事件
}
protected:
void mousePressEvent(QMouseEvent *event) override
{
m_points.push_back(event->pos()); // 将点击的点加入点集合中
update(); // 更新绘图
}
void paintEvent(QPaintEvent *event) override
{
QPainter painter(this);
painter.setPen(Qt::red);
for (int i = 1; i < m_points.size(); ++i) {
painter.drawLine(m_points[i - 1], m_points[i]); // 依次连接点生成线条
}
}
private:
QList<QPoint> m_points; // 存储点击的点的集合
};
// 在主函数中创建并显示绘图窗口
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
DrawLineWidget widget;
widget.show();
return a.exec();
}
```
希望这个答案对您有帮助!