BestMPRBaseVtk-002-修改工程,搬运官方代码并尝试理解-1

简介: BestMPRBaseVtk-002-修改工程,搬运官方代码并尝试理解-1

image.png

修改工程,搬运官方代码并尝试理解-1

昨天,苹果刚发布了他们的新产品,带刘海的笔记本出现了,真的很哇瑟呀。昨天夜里又梦到张扁扁了,哎。


今天这篇主要是水一篇,在原来的基础上,引入了另一个名称的插件,两个插件功能一样,名字不一样而已,还有一个实现工程,因为我没发现搞成插件,不好测试,至少目前还没有发现啥好的测试方法,只能每次替换Qt目录下的插件,好费力,所以我就先直接先建一个普通的工程,把功能都实现了,在做迁移。


文章目录

修改工程,搬运官方代码并尝试理解-1

1 新增子项目

2 先可以显示图片了

3 理解官方代码

3.1 构造函数

3.1.1 焦点策略

3.1.2 setUpdateBehavior

3.1.3 setMouseTracking

3.1.4 grabGesture

☞ 源码

关键字: Qt 插件、VTK9.0.3、子项目、测试、实现


1 新增子项目

相比之前,多了公司的插件工程和代码实现工程,因为如果直接写插件,目前我还不知道咋调试,每次都需要把插件放到Qt目录下,还得重启Qt,真的好烦人呀。

image.png

后面基本思想还是移植vtk官方的插件内容,先搞起来再说吧。

2 先可以显示图片了

本次显示图片毫无任何技术含量,就是官方库换名字。上面自己抄官方代码来的,下面是使用官方内容。没有任何技术含量。

image.png

BPPMPRWidget::BPPMPRWidget(QWidget *parent, Qt::WindowFlags f) : BPPMPRWidget(vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New().GetPointer(),parent,f)
{
}
BPPMPRWidget::BPPMPRWidget(vtkGenericOpenGLRenderWindow *window, QWidget *parent, Qt::WindowFlags f) : Superclass(parent,f),RenderWindow(nullptr),RenderWindowAdapter(nullptr),EnableHiDPI(true),UnscaledDPI(72),DefaultCursor(QCursor(Qt::ArrowCursor))
{
    //默认设置为强焦点
    this->setFocusPolicy(Qt::StrongFocus);                      //焦点策略,即小部件可以通过Tab键和单击接受焦点,在MacOS上,这也表明当处于"文档、列表焦点模式"时,小部件接受选项卡焦点
    this->setUpdateBehavior(QOpenGLWidget::NoPartialUpdate);
    this->setMouseTracking(true);
    //使用本地updateSize替换原来的resize
    this->connect(this,&BPPMPRWidget::resized,this,&BPPMPRWidget::updateSize);
    this->setRenderWindow(window);
    //启用Qt手势支持
    this->grabGesture(Qt::PinchGesture);
    this->grabGesture(Qt::PanGesture);
    this->grabGesture(Qt::TapGesture);
    this->grabGesture(Qt::TapAndHoldGesture);
    this->grabGesture(Qt::SwipeGesture);
}

image.pngimage.pngimage.png

目录
相关文章
|
2月前
|
数据可视化 测试技术 API
阅读源码有哪些好方式与好步骤
阅读源码是理解软件工作原理的关键。首先,了解背景、目的和技术栈。从文件头部的文档注释开始,逐步深入到复杂代码。利用Git、调试器和分析工具辅助理解。保持批判性思维,质疑代码设计并验证理解。拆分代码块,画图展示结构,使用版本控制追踪变更。搜索、阅读文档、API和单元测试以深化理解。参与讨论,做笔记,回顾历史版本,了解上下文,并通过实践加强领悟。每个人的方法可能不同,关键是持续学习和适应。
28 1
|
2月前
|
缓存 NoSQL 数据库
总结 做项目的一点自己的想法 在开发中我觉得可以修改的地方
总结 做项目的一点自己的想法 在开发中我觉得可以修改的地方
22 1
|
2月前
|
存储 小程序 数据库
零基础开发小程序第五课-修改数据
零基础开发小程序第五课-修改数据
|
7月前
|
XML Java Maven
Maven的入门级——介绍,安装,导入项目,全网最最详细教程!!,包含可能会包的错误的已经指出来了
Maven的入门级——介绍,安装,导入项目,全网最最详细教程!!,包含可能会包的错误的已经指出来了
|
8月前
|
JavaScript 前端开发 Cloud Native
云his源码 多院区集团化的全院HIS系统源代码
系统利用云计算平台的技术优势,建立统一的云HIS、云病历、云LIS,有效实现实现协同门诊、住院、药房药库管理、双向转诊转检、远程会诊诊断及医疗数据共享与交换,解决数据重复采集及信息孤岛等问题,为实现区域协同医疗卫生信息化平台奠定了基础。 系统技术特点:采用前后端分离架构,前端由Angular语言、JavaScript开发;后端使用Java语言开发,适用于二级医院、基层医疗机构,可作为区域HIS使用,经扩展后能够应用于医联体/医共体。 云病历:完全满足和符合国家电子病历评级标准。三级质控,病历留痕,续打,批注
|
存储 小程序 数据库
零基础开发小程序第五课-修改数据(一)
零基础开发小程序第五课-修改数据(一)
|
小程序
零基础开发小程序第五课-修改数据(二)
零基础开发小程序第五课-修改数据(二)
|
自然语言处理 编译器 程序员
【跟着操作就行了】手把手教你 编译+链接 程序环境教程
【跟着操作就行了】手把手教你 编译+链接 程序环境教程
78 0
|
SQL JSON 机器人
pytest+yaml设计接口自动化框架过程记录(一步一步记录如何设计,完结撒花),源码提供,视频教程
pytest+yaml设计接口自动化框架过程记录(一步一步记录如何设计,完结撒花),源码提供,视频教程
|
JavaScript 前端开发
DjangoVue前后分离_前端项目的准备(搭建博客第一步)
DjangoVue前后分离_前端项目的准备(搭建博客第一步)
59 0