QT在界面两点画一条线并测算距离

记录一下在界面划线的过程

在QT插件界面有QProductSetShowWidget2::QProductSetShowWidget2(QWidget *parent)框

其中缺陷图片是由ui->def_view设置

def_view是一个自定义类 QSynchShowImageView继承自vml::QZoomGraphicsView再继承自QT官方的QGraphicsView

在类QSynchShowImageView中
paintEvent方法用来持续刷新界面

 重定义了对鼠标事件的响应

设置有一个常量表示现在对框的一个状态,分别是展示图片,移动图片,测量距离

在测量距离的时候,用下面两个表示线段的起点和终点,update()方法刷新paintevent

pStart = mapToScene(event->pos()).toPoint(); //起点

pEnd = mapToScene(event->pos()).toPoint();   //终点

在paintevent中判断是否是测量模式

调用在QSynchShowImageView类中定义的SetLineText和SetLine来画线段和展示距离

参数传给scene一个智能指针对象,

是一个定义在 QSynchShowImageView 的QSynchShowImageScene* scene_ = nullptr;

scene调用QSynchShowImageScene中的函数SetLineText和SetLine,进行对场景的划线和展示文本。

 QSynchShowImageScene是一个继承QT官方的QGraphicsScene类的类

官方的QGraphicsItem类有很多子类,用来设置图像或者文本等

通过在QSynchShowImageScene中加入这些子类,可以调用每一个子类的方法

最终调用QGraphicsItem的各个子类的方法完成

实现在界面设置线段和文本,线段的参数在pen里面设置,文本也有许多设置参数的函数。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值