Qt C ++ QLine QPoint

问题描述 投票:2回答:1

我的[[drawingWidget.h]]中有QVector<QPoint>个m_vertices和QVector<QLine>我目前正在尝试做一个简单的绘图工具,可以在其中添加顶点和线。我设法在“ MainWindow”上绘制了多个顶点,但我不太明白,如何在创建的顶点之间实现一条线。

[基本上,我创建了两个点,通过在第一个顶点上单击鼠标左键并在第二个顶点上单击鼠标左键...应该在它们之间创建一条线。

我该怎么做?

void DrawingWidget::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.fillRect(event->rect(), Qt::blue); painter.setBrush(Qt::black); for(int i = 0; i < m_vertices.size() ; i++) { painter.drawEllipse(m_vertices[i], 20, 20); } } void DrawingWidget::mousePressEvent(QMouseEvent *event) { if(m_state == ADD_VERTEX_SELECTED) { if(event->button() == Qt::LeftButton) { //m_x = event->x(); //m_y = event->y(); //update(); QPoint point = event->pos(); m_vertices.append(point); update(); } } if(m_state == ADD_LINE_SELECTED) { if(event->button() == Qt::LeftButton) { QPoint Startpoint = event->x(); QPoint Endpoint = event->y(); } } }

我的drawingWidget.h中有QVector 

m_vertices和QVector 。我目前正在尝试做一个简单的绘图工具,可以在其中添加顶点和线。我设法画了多个...

c++ qt qt5 qpainter
1个回答
3
投票
您快到了。您需要为此使用QPainter::drawLine,并从QPainter::drawLine传递两个连续的鼠标QPoint

例如

© www.soinside.com 2019 - 2024. All rights reserved.