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

目录
相关文章
|
API
BestMPRBaseVtk-003-修改工程,搬运官方代码并尝试理解-2
BestMPRBaseVtk-003-修改工程,搬运官方代码并尝试理解-2
444 0
BestMPRBaseVtk-003-修改工程,搬运官方代码并尝试理解-2
|
Kubernetes 前端开发 Go
上篇:带你手工体验从写代码、编译、打包镜像、部署到K8S的全过程
上篇:带你手工体验从写代码、编译、打包镜像、部署到K8S的全过程
463 0
|
IDE 开发工具 C++
C++实践参考——处理C++源代码的程序
【项目 - 处理C++源代码的程序】   在CodeBlocks等IDE中都提供了代码格式整理的功能。完成这种功能的程序,操作的数据是用C++写的源代码文件。C++源文件是一种文本文件,可以通过程序进行操作。集成开发环境(IDE)对对程序进行编译,操作的“数据”是源程序。编译中,要对源程序进行词法检查和语法检查,后续还要进行目标代码生成、代码优化等工作。相关的技术将在《编译原理》课中学习。这些
1182 0
|
9月前
|
缓存 NoSQL 数据库
总结 做项目的一点自己的想法 在开发中我觉得可以修改的地方
总结 做项目的一点自己的想法 在开发中我觉得可以修改的地方
47 1
|
Android开发 Java 监控
覆盖Android开发各个领域的近百个源码项目
Android PDF 阅读器        http://sourceforge.net/projects/andpdf/files/ 个人记账工具 OnMyMeans        http://sourceforge.
1089 0
|
存储 Oracle Ubuntu
一个在线安卓项目移植阿里云记录
将一个安卓书店项目移植到阿里云上
一个在线安卓项目移植阿里云记录
|
Android开发 数据安全/隐私保护 程序员
04.Eclipse下Ndk开发(以文件拆分合并为例模拟一下开发过程,参考文件加密的过程)
(创建于2017/12/6) 1.工具类PatchUtils package com.ren.ndk_file_patch; public class PatchUtils { static{ System.
999 0
|
Oracle IDE Java
最详细的Android开发环境配置经验分享(包含配置过程中可能出现的问题及解决办法。繁琐的配置步骤是否是你头疼呢,详细配置步骤你值得拥有!)
最详细的Android开发环境配置经验分享(包含配置过程中可能出现的问题及解决办法。繁琐的配置步骤是否是你头疼呢,详细配置步骤你值得拥有!)
475 0
最详细的Android开发环境配置经验分享(包含配置过程中可能出现的问题及解决办法。繁琐的配置步骤是否是你头疼呢,详细配置步骤你值得拥有!)
|
5月前
|
负载均衡 数据库 开发工具
|
XML IDE Java
阅读Spring源码第一步:源码编译与创建调试入口
 Spring开源框架经过很长时间的发展,各个模块均已成熟,一个常识就是一个可靠,可扩展的高性能框架,它的代码行数是相当可观的,我用static插件简略测算了一下,Spring的源码有100多万行,可以想象其中的调用逻辑是相当复杂的,所以将Spring源码下载到本地再编译的话,我们就可以通过IDE的debug来来到抽丝剥茧分析源码的目的,并且我们可以很方便的使用idea来查看调用栈,方法的调用关系也就比较明了了。
阅读Spring源码第一步:源码编译与创建调试入口

热门文章

最新文章