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

目录
相关文章
|
5月前
|
数据采集 人工智能 自然语言处理
AI邂逅青年科学家,大模型化身科研“搭子”
2025年6月30日,首届魔搭开发者大会在北京举办,涵盖前沿模型、MCP、Agent等七大论坛。科研智能主题论坛汇聚多领域科学家,探讨AI与科研融合的未来方向。会上展示了AI在药物发现、生物计算、气候变化、历史文献处理等多个领域的创新应用,标志着AI for Science从工具辅助向智能体驱动的范式跃迁。阿里云通过“高校用云”计划推动科研智能化,助力全球科研创新。
|
5月前
|
网络协议 API
区分TCP/IP、HTTP、Socket三者的差异
HTTP关注于应用层的协议规范,而Socket关注于为应用程序提供编程中的网络功能,这些功能本身是建立在底层的TCP/IP协议之上;HTTP是更高层次的抽象,定义了如何包装数据,而TCP/IP定义了如何传送数据,Socket则是两者之间在程序中的桥梁,负责实现细节。在实际应用中,通常HTTP通信也是通过Socket来完成,因为HTTP仅是具体内容的封装形式,而Socket则是传送方式的实现形式。
489 16
|
9月前
|
存储 弹性计算 人工智能
阿里云服务器第九代企业级g9i实例技术特点、性能优势、适用场景简介
阿里云不断推出创新产品和技术,以满足市场对高性能、高可靠、高性价比云计算资源的需求。近日,阿里云正式面向全球发布了第九代企业级实例ECS g9i,并开启了邀测活动。本文将深入解析阿里云ECS g9i实例的技术特点、性能优势、适用场景以及购买建议,帮助用户更好地了解并选择合适的云服务器实例。
IRS应用发布之七:设置跨域白名单
应用在开发阶部署阶段需要与本地服务器进行开发联调时,需要将待访问的本地域名或IP地址添加到API网关白名单中,然后才能调用mgop接口进行跨域访问。本文介绍如何为应用设置跨域访问白名单。
IRS应用发布之七:设置跨域白名单
|
弹性计算 应用服务中间件 Apache
阿里云2核4G云服务器支持多少人同时在线?并发数计算?
阿里云服务器2核4G支持多少人同时在线?关于2核4G服务器的并发数取决于实际应用程序效率、公网带宽及ECS实例规格,还有2核4G云服务器公网带宽,带宽小的话很可能直接都卡到网络入口了
1211 0
阿里云2核4G云服务器支持多少人同时在线?并发数计算?
鼠标控制物体旋转、移动、缩放(Unity3D)
Unity3D对于鼠标操作物体的旋转、移动、缩放的功能点使用的比较多。 今天就分享如何使用Unity实现鼠标对于物体的旋转、移动、缩放。
|
Linux
使用Rufus制作LINUX启动安装U盘(成功)
使用Rufus制作LINUX启动安装U盘(成功)
878 0
使用Rufus制作LINUX启动安装U盘(成功)
|
前端开发 rax 小程序
基础组件完善的今天,如何通过业务组件提效?
无论是在前端刀耕火种的 jQuery/YUI 时代,还是到现在基于数据驱动 UI 的 React/Vue 时代,物料/组件一直是前端永恒的话题。基于大量重复逻辑的封装可以很显而易见地提升前端 UI 的构建效率,简单而直接,因此无论技术栈如何变化,物料工作都是排在各个前端团队的首要位置解决。
基础组件完善的今天,如何通过业务组件提效?
|
架构师 Cloud Native 领域建模
如何成为云原生时代的卓越架构师
“软件开发需要面对本质困难和附属困难。云原生、DevOps大幅降低了附属困难,使得架构师可以全力聚焦于业务复杂性,而DDD恰是管理业务复杂性的有效方法。”
6464 0
如何成为云原生时代的卓越架构师
|
Java Spring
在SpringBoot中如何给静态属性赋值
在实际开发中,我们经常需要给静态属性赋值,值的来源于`yml`或者是`properties`文件。就不能单独去使用`@Value`注解了,下面介绍几种方式进行属性注入。
1461 0

热门文章

最新文章