修改工程,搬运官方代码并尝试理解-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,真的好烦人呀。
后面基本思想还是移植vtk官方的插件内容,先搞起来再说吧。
2 先可以显示图片了
本次显示图片毫无任何技术含量,就是官方库换名字。上面自己抄官方代码来的,下面是使用官方内容。没有任何技术含量。
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); }