QGraphicsView和QGraphicsScene中添加了一张图片,如何在图片上绘制两点之间虚线? 10C

QGraphicsView和QGraphicsScene中添加了一张图片,
如何在图片上绘制两点之间虚线?

.......
m_GraView->setScene(m_GraScene);
m_GraView->resize(this->width(), this->height());
m_GraView->setStyleSheet("background: black;border:0px");
m_GraScene->addPixmap(m_pixmap );

两点之间绘制虚线主要功能就是测量两点之间的距离,点的坐标可以获取,但是我不知道如何绘制虚线?

2个回答

假设你的class 为 T

void T::paintLine(QPixmap &pix, QPoint point1, QPoint point2)
{
    if(!pix.isNull())
    {
        QPainter painter(&pix);
        QPen pen;
        pen.setWidth(2);
        pen.setStyle(Qt::DashLine);
        pen.setColor(Qt::blue);
        painter.setPen(pen);
        painter.drawLine(point1,point2);
    }
}
qq_39754491
P_zz 回复qtchen_1988: 当作场景的Item怎么做啊?有没有简单的Demo啊?谢谢!
8 个月之前 回复
qtchen_1988
qtchen_1988 回复P_zz: 或者比较笨点的方法;你在调用这个paintLine这个函数时备份一张图,用拷贝出来的图画,每次选点的时候都用原始图的拷贝,但这不知道是否你的需求
8 个月之前 回复
qtchen_1988
qtchen_1988 回复P_zz: QUndoCommand 这个类了解下,里面有undo()撤销,redo()重做。如果你有这个需求,就不能直接画在图片上了,应该当作场景里的一个Item,然后实现重做,撤销
8 个月之前 回复
qq_39754491
P_zz 有没有方法将绘制的这条虚线清除,就是我选择两点之后绘制出虚线后清除这条虚线,重新选点在绘制,再清除,以此类推
8 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问