记录一下在界面划线的过程
在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里面设置,文本也有许多设置参数的函数。
标签:界面,QT,子类,线段,QSynchShowImageScene,QSynchShowImageView,一条线 From: https://blog.csdn.net/qq_66010052/article/details/137111284