自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(712)
  • 资源 (195)
  • 收藏
  • 关注

原创 银河麒麟V4下编译Qt5.12.12源码

银河麒麟V4下编译Qt5.12.12源码

2026-04-10 11:47:48 180

原创 This application failed to start because no Qt platform plugin could be initialized.Reinstalling the

This application failed to start because no Qt platform plugin could be initialized.Reinstalling the application may fix this problem.

2026-04-03 11:47:59 387

原创 kylin-v4-juniper (麒麟 V4)编译osg3.6.5、osgEarth3.2

本文详细记录了在麒麟V4系统上安装vcpkg-2021.09.30并编译OSG 3.6.5和osgEarth 3.2的过程。主要内容包括:解决vcpkg安装失败问题(需升级CMake至3.23)、配置环境变量、编译安装GDAL 2.4.4以解决版本兼容性问题,以及最终通过vcpkg工具链完成OSG的编译安装。整个过程涉及多个技术难点,包括版本冲突处理、依赖库管理和系统路径配置等,为在国产操作系统上构建三维地理信息系统提供了实用参考。

2026-03-12 21:24:13 394

原创 unreal engine5打开工程崩溃

ue5项目打开崩溃

2026-03-05 17:36:28 283 1

原创 Notepad++格式化显示json字符串数据

本文介绍了在Notepad++中格式化显示JSON字符串数据的三种方法:1)使用JSTool插件,安装后通过Ctrl+Alt+M快捷键快速格式化;2)使用JSON Viewer插件,支持树状结构查看;3)通过在线工具手动美化(不推荐)。前两种插件方法操作简单,能直接在Notepad++内实现JSON格式化显示,让数据呈现更清晰的结构。安装插件后,只需选中JSON内容,在插件菜单中选择相应功能即可完成格式化。

2026-03-02 13:59:08 408

原创 UE5角色穿过石头穿模

摘要: 本文针对UE5中角色穿过石头的问题进行分析与解决。主要原因是碰撞设置未正确配置,包括石头静态网格体缺少碰撞、场景中碰撞预设错误或角色胶囊体设置不当。解决步骤包括:检查并添加石头的碰撞体、确保场景中碰撞预设为BlockAll、验证角色胶囊体的碰撞设置及项目中的碰撞通道响应。通过调整这些参数,可有效防止角色穿透物体。文中配有操作截图与效果对比图,提供了详细的排查与修复方法。

2026-02-25 10:57:11 837

原创 unreal engine5角色把敌人 “挤飞”

摘要: 本文解决UE5中玩家与敌人接触时互相挤飞的问题,核心是调整碰撞预设。通过设置玩家(Pawn)和敌人(Enemy)的碰撞通道为Overlap而非Block,实现双向检测但不阻挡的效果。具体步骤包括:1)为玩家胶囊体和网格体配置Pawn类型及Overlap响应;2)为敌人创建自定义Enemy通道;3)在项目设置中添加EnemyPawn预设;4)通过WeaponCollisionBox和感知范围实现攻击与追踪逻辑。最终确保双方可触发事件但无物理阻挡,优化游戏交互体验。

2026-01-22 10:41:01 667

原创 不允许使用不完整的类型 “SlateAttributePrivate::TSlateAttributeBase<SWidget, TOptional<FSlateRenderTransform>, s

本文介绍了在Unreal Engine5中创建C++项目时遇到的编译错误问题。主要内容包括:1)展示了WarriorInputComponent类的头文件和实现文件代码,其中实现了BindNativeInputaction模板方法来绑定输入动作;2)描述了编译时出现的多个错误,主要涉及"不允许使用不完整的类型"问题,特别是与TOptional模板类相关的错误;3)指出了头文件中#include顺序的问题,强调.generated.h文件应该始终是头文件的最后一个包含项。文章旨在帮助开发者

2026-01-09 14:50:37 673

原创 Unreal Engine5报错:Expected WarriorDebugHelper.h to be first header included.

摘要: 在UE5 C++项目中创建WarriorDebugHelper类时,遇到头文件包含错误和未定义标识符问题。核心错误是:1)自定义头文件未作为首个包含项;2)UE头文件路径未被识别。解决方案:1)通过UE编辑器新建C++类自动生成文件;2)确保.cpp文件首行包含对应.h文件;3)检查.Build.cs中依赖模块配置(需包含Core、Engine等)。正确示例:将Debug::Print函数声明与实现分离,并确保编译流程符合UE的UBT规则。

2026-01-08 15:19:15 993

原创 找不到资产文件“E:\UE5\Exercise\Warrior\Intermediate\Build\BuildRulesProjects\WarriorModuleRules\obj\project

摘要:UE5.4.4编译Warrior工程时出现project.assets.json缺失问题,主要原因是NuGet包未正确还原或编译配置文件生成失败。解决方案包括:1)通过VS或命令行手动执行dotnet restore命令还原NuGet包;2)清理工程缓存文件(.vs/Intermediate/Binaries)并重新生成工程;3)检查并修复UE引擎的NuGet配置。关键注意事项:需管理员权限、正确VS2022版本、无中文路径及网络连接。核心解决逻辑是还原缺失依赖包并重建工程配置。(149字)

2026-01-07 23:58:12 1096

原创 Could not find the skeleton for Anim ‘AnimBlend_sniperStandMove‘ Would you like to choose a new one?

摘要 本文解决了在Unreal Engine 5.4.4中导入UE5.0.0动画时出现的"找不到骨骼"问题。主要原因在于动画绑定的骨骼与当前工程不匹配。解决方法包括:1)点击提示框"Yes"按钮;2)选择工程中对应的骨骼资源(如ThirdPersonSkeleton);3)验证动画效果。若骨骼结构不一致,需通过动画重定向管理器进行适配,设置源骨骼和目标骨骼后生成新动画。整个过程确保动画正确绑定到工程骨骼资源,从而正常使用导入的动画内容。

2026-01-06 15:33:19 813

原创 windows10 桌面图标突然去不见了,如何恢复呢?

摘要:Windows 10桌面图标突然消失的解决方案包括:1)检查"显示桌面图标"选项是否勾选;2)重启explorer.exe进程;3)检查主题和平板模式设置;4)重建图标缓存;5)扫描系统文件;6)创建新用户账户。多数情况下前两步即可解决问题,若无效可逐步尝试后续方法,最终可考虑新建账户解决配置文件损坏问题。操作时注意备份重要数据。

2026-01-02 16:14:14 1159

原创 unreal engine5 c++中,未能找到类型或命名空间名“UnrealBuildTool”(是否缺少 using 指令或程序集引用?) 找不到资产文件“E:\UE5\Exercise\MyPr

unreal engine5 c++中,未能找到类型或命名空间名“UnrealBuildTool”(是否缺少 using 指令或程序集引用?找不到资产文件“E:\UE5\Exercise\MyProject_VS\Intermediate\Build\BuildRulesProjects\MyProject_VSModuleRules\obj\project.assets.json”。运行 NuGet 包还原以生成此文件。

2025-12-29 22:05:32 1042

原创 unreal enging5.5.4 报错: Warning: Pin ‘execute‘ on boundary node ‘K2Node_Composite_0‘ could not

摘要 Unreal Engine 5.5.4中出现"Pin 'execute' on boundary node"错误,通常是由于蓝图节点执行引脚丢失或元数据损坏导致。解决方法包括:1)刷新受影响的节点并重新编译;2)检查复合节点内部确保有有效的入口执行引脚;3)展开并重新合并节点;4)检查是否存在引脚命名冲突。若图表为只读状态,需复制逻辑到自定义蓝图中修改。该错误反映了底层代码逻辑与图表节点连线的脱节问题。

2025-12-27 20:02:28 604

原创 \Intermediate\Build\BuildRulesProjects\MyProject_VSModuleRules\obj\project.assets.json”。运行 NuGet 包还原

摘要 本文介绍了在Unreal Engine 5.4中使用C++创建第三人称游戏工程时遇到的编译错误问题。主要错误表现为系统找不到多个"project.assets.json"文件,提示需要运行NuGet包还原。文章分析了错误原因是.NET NuGet包未正确还原或编译环境关联异常,并提供了详细的解决方案:通过Visual Studio手动还原NuGet包(包括界面操作和命令行两种方式),以及解决运行程序时可能出现的启动项设置问题。文中包含具体操作步骤和截图指导,帮助开发者快速解决此类编

2025-12-17 23:24:23 874

原创 osgEarth中文显示乱码

摘要:本文分析了osgEarth 3.2中出现中文乱码的三个主要原因:源文件编码与Qt字符串处理不匹配、未明确指定UTF-8编码、缺少中文字体支持。解决方案包括:1)使用QTextCodec正确处理GBK到UTF-8的编码转换;2)在TextSymbol中显式设置ENCODING_UTF8;3)指定支持中文的字体文件。通过完整的编码转换流程和正确配置,最终实现了中文在三维场景中的正常显示。文中提供了详细的代码实现和验证方法,确保从字符串定义到渲染的全程编码一致性。

2025-12-15 18:44:38 698

原创 unreal engine5中,角色装备没有完全跟随角色身体是怎么回事呢

摘要:本文解决了Unreal Engine 5.5中角色装备未完全跟随身体的问题,主要从骨骼绑定、Socket设置、动画同步和蒙皮权重四个维度进行分析。具体解决方案包括检查装备Socket绑定是否正确、验证动画同步设置、调整蒙皮权重分配以及排查Socket变换误差。通过逐步排查这些关键环节,最终实现了装备与角色身体的完美贴合。文中提供了详细的排查步骤和示例代码,帮助开发者快速定位并解决此类动画绑定问题。

2025-11-19 17:55:22 1045

原创 安装了小乌龟TortoiseGit绿色的勾 ✔ 和 红色的 !没有显示

TortoiseGit图标不显示问题解决方案:当绿色勾✔和红色!图标在文件夹中不显示时,可通过修改注册表解决。方法是:1)打开注册表编辑器(regedit);2)定位到ShellIconOverlayIdentifiers路径;3)在所有TortoiseGit相关项名称前添加空格使其排序靠前;4)重启电脑。该问题通常由Windows系统图标覆盖数量限制(最多11个)导致,通过调整注册表优先级可让TortoiseGit图标正常显示。具体操作步骤和图示可参考相关技术文章。

2025-10-15 15:01:46 1514

原创 unrealEngine5创建c++工程编译失败

文章摘要 本文记录了在Unreal Engine 5.5中创建C++项目时遇到的编译错误问题及解决方法。作者详细描述了创建第三人称游戏项目、添加C++类和Actor类的过程。当在头文件中添加变量后,VS2022出现大量"不允许使用不完整的类型"错误。经分析可能是VS2022组件缺失或与UE5.5.4不兼容导致。最终通过VS Installer安装必要的UE5组件解决了编译问题。文章提供了完整的操作步骤和截图说明,对于遇到类似问题的开发者具有参考价值。

2025-10-02 11:46:39 2066

原创 无法打开包括文件: “QGLWidget”: No such file or directory

在使用osgQt时,编译器报错无法打开包括文件: “QGLWidget”: No such file or directory

2025-09-30 21:31:40 1109

原创 git使用

本文介绍了使用Git进行版本控制的基本操作流程:首先从官网下载安装Git,在项目文件夹中右键初始化本地仓库;然后添加项目文件并配置用户信息;接着提交代码到本地仓库;最后连接远程仓库(如GitHub)并推送代码。文中提供了详细的命令行示例和界面截图,帮助用户完成从本地仓库创建到代码成功推送远程仓库的全过程,包括常见问题的解决方法。

2025-09-23 11:31:20 554

原创 windows11下编译osgGISPlugins

osg的GIS插件,能够读取、显示3dsmax导出的具有PBR材质的fbx文件、导出gltf/glb/b3dm/i3dm文件、读取/导出ktx2格式图片、读取/导出webp格式图片。同时提供了如下子工具:b3dm转gltf/glb3D模型转3dtiles3D模型简化多张纹理打包成一个纹理图集这是一个基于OpenSceneGraph(OSG)的GIS插件,旨在扩展OSG处理GIS数据的能力。

2025-09-02 18:40:25 692

原创 使用sundog公司的SilverLining SDK渲染问题

使用sundog公司的SilverLining SDK显示效果,动态云层显示效果还是不错的,但是不知道为总是有界面上已经能够正常显示地球以及云层,但是地球上显示了一圈一圈的黑色点,如何去掉这些一圈一圈的黑色点呢我直接用opengl接口函数设置深度测试,编译报错如下:无法解析的外部符号 __imp_glClear,函数 "public: virtual void __cdecl CloudsDrawable::drawImplementation(class osg::RenderInfo &)cons

2025-08-21 14:37:59 484

原创 Win11移动硬盘无法弹出?一招搞定!

本文介绍了Windows 11系统下安全移除移动硬盘的两种方法。当固态硬盘右键菜单缺少"弹出"选项时,作者担心直接拔插会损坏设备。第一种方法是通过禁用Windows自动扫描功能;第二种是通过磁盘管理将移动硬盘设为"脱机"状态,使硬盘从资源管理器中消失,确保安全移除。文章特别强调操作时必须准确选择外接移动硬盘的盘符,避免误操作导致数据丢失。这两种方案为直接拔插硬盘的用户提供了更安全的替代方案。

2025-07-31 16:24:50 6506 3

原创 windows powershell Set-Location : 找不到接受实际参数“SDK\sample”的位置形式参数。 所在位置 行:1 字符: 1 + Set-Location -liter

【摘要】本文介绍了在使用PowerShell时遇到的路径包含空格导致的错误及解决方法。当路径包含空格时,需用引号包裹路径(如cd "D:\path with spaces")。同时说明了执行带参数程序时,需添加"."前缀或创建批处理文件(.bat)来传递参数。文中提供了具体示例,包括错误截图和正确的批处理文件写法,帮助用户解决因路径空格和参数缺失导致的程序执行问题。

2025-07-18 13:32:34 2312

原创 sundog公司的SilverLining SDK库实现3d动态云层和下雨、下雨、雨夹雪效果

先看下效果:下雨效果:下雪效果:雨夹雪🌤️ Sundog Software 的 SilverLining SDK 是一个专为模拟真实天空和天气效果而设计的高性能图形库,广泛应用于飞行模拟、虚拟现实、游戏和科学可视化等领域。

2025-07-15 13:30:04 1134

原创 osgEarth工程release运行正常,而debug却运行崩溃,m_pSkyNode = osgEarth::SkyNode::create(skyOptions);崩溃

摘要: osgEarth工程在Debug模式下运行时出现崩溃问题,主要发生在创建SkyNode节点时。调试信息显示大量无法解析的外部符号错误,涉及内存管理函数(new/delete)、异常处理、安全检查和类型信息等。这些链接错误表明Debug模式下可能存在运行时库不匹配或库文件缺失的问题,建议检查工程配置是否正确链接了Debug版本的依赖库,并确保所有必要的符号都能正确解析。

2025-07-11 14:01:47 729

原创 osg加入实时光照SilverLining 天空和3D 云

osg加入实时光照SilverLining 天空和3D 云

2025-07-03 17:34:54 1089

原创 OsgQt源码编译

这篇教程详细介绍了在Windows 11环境下编译osgQt模块的完整步骤。文章首先列出了所需的开发环境(VS2022、Qt5.14.2、CMake等)和组件下载地址(包括osg、3rdparty和osgQt源码)。然后重点讲解了编译过程中的三个关键问题解决方案:QtWebKit缺失的处理方法、OSGTEXT标识符报错修改,以及版本号格式和链接库路径等编译错误的修复。教程通过图文并茂的方式,逐步指导用户完成从CMake配置到最终生成Debug和Release版本的全过程,是osgQt开发者的实用参考指南。

2025-07-02 14:25:29 1064

原创 IntelliSense 已完成初始化,但在尝试加载文档时出错

IntelliSense 已完成初始化,但在尝试加载文档时出错File path: E:\QtExercise\DigitalPlatform\DigitalPlatform\main\propertyWin.uiFrame GUID:96fe523d-6182-49f5-8992-3bea5f7e6ff6Frame mode:VSFM_MdiChildError code: 0x80041FEB

2025-04-18 15:09:32 1125

原创 visual studio 2022更改项目名称,灾难性故障(异常来自HRESULT)

visual studio 2022更改项目名称,灾难性故障(异常来自HRESULT)

2025-04-17 16:29:05 2844 2

原创 无法打开包括文件: “QGLWidget”: No such file or directory

无法打开包括文件: “QGLWidget”: No such file or directory。

2025-04-14 16:24:05 997

原创 UE5角色状态机中跳跃落地移动衔接问题

UE5角色状态机中跳跃落地移动衔接问题

2025-04-13 20:35:06 1536

原创 “Common::PluginInterface”: 无法实例化抽象类

“Common::PluginInterface”: 无法实例化抽象类抽象类不能实例化:PluginInterface包含纯虚函数initialize和unload,因此是抽象类,不能直接实例化。Q_PLUGIN_METADATA宏问题:Q_PLUGIN_METADATA只能用于具体类(可以实例化的类),而不能用于抽象类。moc工具会尝试实例化Q_PLUGIN_METADATA中引用的类,这就导致了该错误。

2025-04-09 14:47:12 526

原创 “QMetaObject::Connection QObject::connectImpl(const QObject *,void **,const QObject *,void **,QtPriv

“QMetaObject::Connection QObject::connectImpl(const QObject *,void **,const QObject *,void **,QtPrivate::QSlotObjectBase *,Qt::ConnectionType,const int *,const QMetaObject *)”: 无法将参数 3 从“const Common::TcpServer *”转换为“const QObject *”

2025-04-09 14:38:56 1278

原创 找不到导入的项目“xxx\QtMsBuild\Qt.props”。请确认 Import 声明“$(QtMsBuild)\Qt.props”中计算结果为

找不到导入的项目“E:\osgEarth\DigitalSimulationPlatform\DigitalSimulationPlatform\QtMsBuild\Qt.props”。请确认 Import 声明“$(QtMsBuild)\Qt.props”中计算结果为“E:\osgEarth\DigitalSimulationPlatform\DigitalSimulationPlatform\QtMsBuild\Qt.props”的表达式正确无误且该文件位于磁盘上。

2025-04-07 14:24:22 2392

原创 unreal engine5开发仿鬼泣5的游戏,把敌人击飞到空中4连击

unreal engine5开发仿鬼泣5的游戏,把敌人击飞到空中4连击在Unreal Engine 5中开发类似《鬼泣5》的游戏中,实现将敌人击飞到空中并进行4连击的功能,可以通过以下步骤来实现:1. 设置角色和敌人的碰撞与动画角色攻击逻辑:创建角色的攻击动画,并在动画的关键帧添加事件通知(Anim Notify),用于触发攻击逻辑。碰撞检测:使用碰撞盒(Collision Box)或射线检测(Line Trace)来检测角色攻击是否命中敌人。敌人受击反应:在敌人的蓝图或C++代码中实现一个方法,

2025-04-06 18:04:46 1110

原创 ue5 仿鬼泣5魂类游戏角色和敌人没有碰撞

ue5 仿鬼泣5魂类游戏角色和敌人没有碰撞

2025-04-03 16:35:21 997

原创 QtCreator无法调试

关于QtCreator无法使用cdb调试的问题错误含义这个问题涉及到QtCreator中无法使用cdb(Microsoft’s Console Debugger)进行调试。通常出现这种问题的原因可能有以下几种:cdb未正确安装或未配置路径。QtCreator未正确配置使用cdb作为调试器。项目设置或环境变量配置错误。解决方案确认cdb是否正确安装确保Visual Studio已经安装了调试工具包,包括cdb。你可以通过以下步骤确认:打开Visual Studio安装程序。

2025-04-02 15:25:47 1174

原创 MainWindow.h:5:10: In included file: static assertion failed: error STL1000: Unexpected compiler ver

在QtCreator5.15.2新建的工程,报警告如下:MainWindow.h:5:10: In included file: static assertion failed: error STL1000: Unexpected compiler ver错误含义错误提示“static assertion failed: error STL1000: Unexpected compiler version, expected Clang 18.0.0 or newer”意味着编译器版本不满足要求。具体

2025-04-02 14:55:00 2048

visual studio2022-64bit-3rdParty-osg365-osgEarth32 加载地球,并显示中国地图省份、城市、区、县城、镇、村行政图

visual studio2022_64bit_3rdParty_osg365_osgEarth32 加载地球,并显示中国地图省份、城市、区、县城、镇、村行政图

2025-01-02

osgEarht海量地名LOD根据距离的不同加载市、区、村镇

osgEarht海量地名LOD根据距离的不同加载市、区、村镇,使用多线程解决卡顿问题

2024-12-25

osg3.6.5和osgEarth3.2添加图标和文字

osg3.6.5和osgEarth3.2添加图标和文字,我在windows10下使用visual studio 2022加入osg3.6.5,、osgearth3.2编程,配置了osg和osgearth 好了头文件、lib、bin目录,现在的需求是在地球上添加图标和文字。网上有很多代码也能实现,但是作者往往用的osg和osgEarth版本都很老了,特别是osgEarth还在用2点几的版本,所有基本都是osgEarth::Symbology 和 osgEarth::Annotation 以及它们的成员。在 OSGEarth 3.2 中,Annotation 和 Symbology 模块确实已经被移除或重构,不再以之前的方式提供。这意味着直接包含 <osgEarth/Annotation> 和 <osgEarth/Symbology> 头文件的方法不再适用。

2024-12-19

osg3.6.5 osgearth3.2构建数字地球

windows10下,使用visual studio2022使用osg3.6.5 osgearth3.2构建数字地球

2024-12-12

Windows权限服务控制启动服务停止服务Delivery Optimization

Windows权限服务控制Delivery Optimization OpenService failed. Error code: 1060. 指定的服务未安装,代码解决以上问题

2024-08-21

使用openGL、glad、glfw、stb-image创建鼠标和键盘wsad控制窗口内的视口,并加载纹理

使用openGL、glad、glfw创建鼠标和键盘wsad控制窗口内的视口,并加载纹理,封装了openGL中的相机、矩阵变换、纹理处理,窗口键盘鼠标事件响应,参考learn openGL

2024-03-20

QGraphicsItem、QGraphicsView、QGraphicsScene封装

QGraphicsItem、QGraphicsView、QGraphicsScene封装自定义

2023-04-02

Qt QListWidget传入多张图片

Qt QListWidget传入多张图片,QListWidget样式设置,QListWidget是继承QListView,QListView是基于Model的,需要自己来建模(如建立QStringListModel,QSqlTableModel等),保存数据,这样就大大降低了数据冗余,提高了程序的效率,但是需要我们对数据建模有一定的了解,而QListWidget是一个升级版本的QListView,它已经为我们建立了一个数据存储模型QListWidgetItem,操作方便,直接调用addItem即可添加Item项。

2023-03-20

Qt中QMap和QMultimap使用

QMap 是Qt的通用容器类之一。它存储(键,值) 对,并提供与键相关联的值的快速查找。其实就是一个键值对的集合,经常使用的。具体更详细还得看看帮助文档 QMap/QMultiMap属于关联式容器,其底层结构是通过二叉树实现,故其查找value的效率很快。QMap中的数据都是成对出现的,第一个称为key(键),第二个称value(键值)。

2023-03-19

QT使用QListWidget显示多张图片

使用了QListWidget,QDockWidget QListWidget类提供了一个基于项目的列表小部件 QListWidget是一个方便的类,它提供了一个列表视图,类似于QListView提供的列表视图,但是具有一个用于添加和删除项的经典基于项的接口。QListWidget使用一个内部模型来管理列表中的每个QListWidgetItem。要获得更灵活的列表视图小部件,请使用带有标准模型的QListView类。列表小部件的构造方法与其他小部件相同。QListWidget与QListView类似,都可以显示一列Item,区别在于前者可以往其中增删Item。 QListWidget确定可以同时选择列表中的多少项,以及是否可以创建复杂的项选择。这可以使用函数设置

2023-03-10

Qt QDockWidget、QtreeWidget界面实现

Qt QDockWidget、QtreeWidget界面实现 ,QDockWidget提供了dock widget的概念,也称为工具面板或实用工具窗口

2023-03-09

openCV加载jpg图片完整代码

openCV加载jpg图片完整代码,包含完整头文件、lib、dll无需安装和配置opencv就可以运行

2023-02-23

QTreeWidgetItem的setData(int column,int role,QVariant& data)等,

Qt中QVariant是多种类型的联合,QVariant类中有个SetValue(T& value)方法,将自定义 T 类型的数据保存到QVariant对象中,可以理解为是自定义类型被封装成了QVariant的形式,这样,我们自定义的T类型的对象就能够通过所有参数和返回值为QVarian类型传递。比如QTableWidgetItem的setData(int column,QVariant& data)和QTreeWidgetItem的setData(int column,int role,QVariant& data)等,通过setData函数我们可以为每个单元格保存自己想绑定的数据及为每个树节点保存想绑定的自定义类型的数据。   但是,QVariant中的setValue方法的使用有个前提,就是我们自定义的类型要能被Qt所识别。那该怎样识别呢?   这就要用到宏定义Q_DECLARE_METATYPE了,通过这个宏定义可以将自定义的类型注册到Qt的元类型中,从而被Qt识别,通常在自定义类型定义之后使用。

2022-09-16

QStackedWidget 控件使用详解

QStackedWidget 控件相当于一个容器,提供一个空间来存放一系列的控件,并且每次只能有一个控件是可见的,即被设置为当前的控件。QStackedWidget可用于创建类似于QTabWidget提供的用户界面。它是一个构建在QStackedLayout类之上的方便布局小部件。与QStackedLayout一样,QStacked Widget可以构建并填充许多子Widget(“页面”):

2022-09-07

QTreeWidget类是一个方便的类,它提供了一个标准tree小部件与一个典型的基于项目所使用的接口类似QListView

QTreeWidget类是一个方便的类,它提供了一个标准tree小部件与一个典型的基于项目所使用的接口类似QListView Qt 3类。这个类是基于Qt的模型/视图的体系结构,使用一个默认的模型项目,每一个都是一个QTreeWidgetItem。      开发人员不需要模型/视图框架的灵活性可以使用这个类来创建简单的分层列表。更灵活的方法是结合QTreeView标准项目模型。这允许存储的数据是与它的表示分离。 在其最简单的形式,一个tree小部件可以构建在以下方式

2022-09-02

QTreeWidget用法并解决中文乱码问题 QTreeWidgetItem

QTreeWidget用法并解决中文乱码问题 Qt中实现树形结构可以使用QTreeWidget类,QTreeWidgetItem,也可以使用QTreeView类,QTreeWidget继承自QTreeView类。

2022-08-31

openSceneGraph3.5.1编译

osg3.5.1_windows_lib_dll_debug_release,openSceneGraph3.5.1编译 OpenSceneGraph3.5.1在windows10、visual studio2019编译的动态库和静态库

2022-08-23

Movie To GIF 主要特点 将视频转换为动画 GIF 将 AVI,MPEG,MKV,MP4,WMV,MOV 和 RM 等

Movie To GIF 主要特点 将视频转换为动画 GIF 将 AVI,MPEG,MKV,MP4,WMV,MOV 和 RM 等视频文件转换为动画 GIF 文件,同时保持原始播放速率和分辨率。 调整 将输出图像文件的分辨率保持为原始分辨率,或根据需要设置新大小。 帧率 用户可以更改输出帧速率的值(每秒多少图片)来控制剪辑的速度。 颜色 用户可以选择 GIF 的颜色。 支持运行平台: NT/2000/XP/Vista/Win7/8/10 支持语言: English/German/Spanish/Italian/French/Chinese/Japanese Movie to GIF 提供了在 GIF 文件中播放视频片段的选项。 您可以每秒设置更多帧,因此输出 GIF 显示为原始视频,或者为较小的动画GIF文件设置较少的帧数。 GIF 的宽度和高度也可调节。 Movie To GIF 许可证 免费软件

2022-08-22

今天在windows7下安装qt-opensource-windows-x86-5.12.9报错: gdb.exe -系统错误

今天在windows7下安装qt-opensource-windows-x86-5.12.9报错: gdb.exe -系统错误 无法启动此程序,因为计算机中丢失api-ms-win-core-path-l1-1-0.dll。尝试重新安装该程序以解决此问题

2022-08-17

ofstream,ifstream,fstream读写文件

在编程总经常会用到读写文件,基本都是使用ofstream,ifstream,fstream

2022-08-01

QTreeWidget是实现树形结构的类,在很多软件中都可以看到类似树形结构的界面

QTreeWidget是实现树形结构的类,在很多软件中都可以看到类似树形结构的界面 1.QTreeWidget树上添加图片 2.QTreeWidget动态加载,双击书上每个子节点,树会自动添加子节点

2022-07-22

vtk加载stl格式三维模型,完整代码包括所有的头文件,lib库和dll库

vtk加载stl格式三维模型,完整代码包括所有的头文件,lib库和dll库,解析STL文件

2022-07-17

Qt不同类进行信号与槽建立,并传递参数

Qt不同类进行信号与槽建立,并传递参数,Qt不同类之间槽函数连接

2022-07-05

Qt中使用QDomDocument和QDomnode来读取xml

Qt中使用QDomDocument和QDomnode来读取xml 内容简介:一.对QDomDocument和QDomnode的理解QDom前缀的都是代表节点类型。所以有,QDomElement代表一个Element节点,而QDomText代表一个Text节点。QDomNode类可以存储任意类型的节点。如果想进一步处理一个节点,首先必须把它转化为正确的数据类型。QDomNode调用toElement()以把它转化成QDomElement,然后调用tagName()来获得元素的标签名称。如果节点不是Element类型,那么toElement()函数就返回一个空QDomElement对

2022-06-29

opengl实现骨骼动画,用到glaux,glut

opengl实现骨骼动画,用到glaux,glut,包含身体各个部分:头文小腿,大腿,自定义运动角度

2022-06-15

osg(OpenSceneGraph)多窗口渲染

osg(OpenSceneGraph)多窗口渲染 在不同的窗口渲染不同的场景

2022-06-14

osg(OpenSceneGraph)添加纹理

osg(OpenSceneGraph)添加纹理 OSG为模型添加纹理图片共分为两种方式,一种是自动方式,一种自定义顶点方式设置纹理坐标。

2022-06-14

openGL曲面细分地形、高度图的细分

,在顶点着色器中执行高度贴图可能会遇到顶点数量不足以用来渲染所需的细 节的情况。现在我们有了生成大量顶点的方法,让我们回到Hastings-Trew 的月球表面纹理 贴图[HT16]并将其用作高度贴图,提升曲面细分顶点来生成月球表面细节。正如我们将看到 的,这具有一些优点,可以让顶点的几何形状更好地匹配月亮图像,并且提升轮廓(边缘) 细节。

2022-05-02

opengl贝塞尔曲面细分,win7+VS017,win10+vs2019版本

opengl贝塞尔曲面细分,win7+VS017,win10+vs2019版本 现在让我们扩展我们的程序,使它将我们简单的矩形网格转换为贝塞尔曲面。细分网格 应该为我们提供了足够的顶点来对曲面进行采样(如果我们想要更多的话,我们可以增加 内部/外部细分级别)。我们现在需要的是通过管线发送控制点,然后使用这些控制点执行计 算以将细分网格转换为我们所需的贝塞尔曲面。

2022-04-25

opengl贝塞尔曲面细分

现在让我们扩展我们的程序,使它将我们简单的矩形网格转换为贝塞尔曲面。细分网格 应该为我们提供了足够的顶点来对曲面进行采样(如果我们想要更多的话,我们可以增加 内部/外部细分级别)。我们现在需要的是通过管线发送控制点,然后使用这些控制点执行计 算以将细分网格转换为我们所需的贝塞尔曲面。 假设我们希望建立一个立方体贝塞尔曲面,我们将需要16 个控制点。我们可以通过VBO 从C++端发送它们,或者我们可以在顶点着色器中硬编码写死它们。 现在是更准确地解释曲面细分控制着色器(TCS)如何工作的好时机。与顶点着色器类 似,TCS 对每个传入顶点执行一次。另外,回想一下第2 章,OpenGL 提供了一个名为 gl_VertexID 的内置变量,它保存一个计数器,指示顶点着色器当前正在执行哪次调用。曲 面细分控制着色器中存在一个类似的内置变量gl_InvocationID。 曲面细分的一个强大功能是TCS(以及TES)着色器可以同时访问数组中的所有控制 点顶点。首先,当每个调用都可以访问所有顶点时,TCS 对每个顶点执行一次可能会让人 感到困惑。在每个TCS 调用中,冗余地在赋值语句中指定曲面细分级

2022-04-12

OpenGL 对硬件曲面细分的支持,通过3 个管线阶段提供: (1)曲面细分控制着色器; (2)曲面细分器; (3)曲面细分评估

OpenGL 对硬件曲面细分的支持,通过3 个管线阶段提供: (1)曲面细分控制着色器; (2)曲面细分器; (3)曲面细分评估着色器。 (1)C++/OpenGL 应用程序: 创建一个摄像机和相关的MVP 矩阵,视图(v)和投影(p)矩阵确定摄像机朝向,模 型(m)矩阵可用于修改网格的位置和方向。 (2)顶点着色器: 在这个例子中基本上什么都不做,顶点将在曲面细分器中生成。 (3)曲面细分控制着色器: 指定曲面细分器要构建的网格。 (4)曲面细分评估着色器: 将MVP 矩阵应用于网格中的顶点。 (5)片段着色器: 只需为每个像素输出固定颜色。 曲面细分器生成由两个参数定义的顶点网格:内层级别和外层级别。在这种情况下, 内层级别为12,外层级别为6——网格的外边缘被分为6 段,而跨越内部的线被分为 12 段。 程序12.1 中的特别相关的新结构被高亮显示。让我们首先讨论第一部分——C++/ OpenGL 代码。 编译这两个新着色器,跟顶点和片段着色器完全相同。然后将它们附加到同一个渲染程 序,并且链接调用保持不变。唯一的新项目是用于指定要实例化的着色器类型的常量——新 常量如下: G

2022-04-09

openGL增强表面细节,模拟地球表面地形

1.openGL增强表面细节,模拟地球表面地形,使用高度贴图实现 2.现在我们扩展法线贴图的概念——从纹理图像用于扰动法向量到扰乱顶点位置本身。实 际上,以这种方式修改对象的几何体具有一定的优势,例如使表面特征沿着对象的边缘可 见,并使特征能够响应阴影贴图。我们将会看到,它还可以帮助构建地形。 3.一种实用的方法是使用纹理图像来存储高度值,然后使用该高度值来提升(或降低)顶 点位置。含有高度信息的图像称为高度图,使用高度图更改对象的顶点的方法称为高度贴 图①。高度图通常将高度信息编码为灰度颜色:(0,0,0)(黑色)=低高度,(1,1,1)(白色)=高高度。这样一来通过算法或使用“画图”程序就可以轻松创建高度图。图像的对比度越 高,其表示的高度变化越大 4.改变顶点位置是否有用取决于改变的模型。顶点操作可以在顶点着色器中轻松完成,当 模型顶点细节级别够高(例如在足够高精度的球体中)时,改变顶点高度的方法效果很好。 但是,当模型的顶点数量很少(例如立方体的角)时,渲染对象的表面需要依赖于光栅器 中的顶点插值来填充细节。当顶点着色器中可用于改变高度的顶点很少时,许多像素的高 度将无法从高度

2022-03-26

openGL高度贴图,使用纹理图像来存储高度值,然后使用该高度值来提升(或降低)顶 点位置。

1.现在我们扩展法线贴图的概念——从纹理图像用于扰动法向量到扰乱顶点位置本身。实 际上,以这种方式修改对象的几何体具有一定的优势,例如使表面特征沿着对象的边缘可 见,并使特征能够响应阴影贴图。我们将会看到,它还可以帮助构建地形。 2.openGL高度贴图,使用纹理图像来存储高度值,然后使用该高度值来提升(或降低)顶 点位置。含有高度信息的图像称为高度图,使用高度图更改对象的顶点的方法称为高度贴 图 3. 高度图通常将高度信息编码为灰度颜色:(0,0,0)(黑色)=低高度,(1,1,1)(白色)=高高度。这样一来通过算法或使用“画图”程序就可以轻松创建高度图。图像的对比度越高,其表示的高度变化越大。 4.改变顶点位置是否有用取决于改变的模型。顶点操作可以在顶点着色器中轻松完成,当 模型顶点细节级别够高(例如在足够高精度的球体中)时,改变顶点高度的方法效果很好。但是,当模型的顶点数量很少(例如立方体的角)时,渲染对象的表面需要依赖于光栅器中的顶点插值来填充细节。 5.当顶点着色器中可用于改变高度的顶点很少时,许多像素的高 度将无法从高度图中检索,而需要由插值生成,从而导致表面细节较差。当然

2022-03-26

osg、osgEarth加载tms瓦片数据只显示一个白球,缩放过程中图层消失

osg、osgEarth加载tms瓦片数据只显示一个白球,数据配置、路径配置都没有问题。最后发现是代码问题,把tms瓦片数据显示出来后,发现在缩放地球的时候tms数据又会消失

2025-02-19

osg3.6.5 osgEarth3.2中,加载tif文件

osg3.6.5 osgEarth3.2中,加载tif文件,实现思路 初始化 osgEarth:首先需要初始化 osgEarth 库。 创建地图对象:创建一个 osgEarth::Map 对象来管理和组织图层。 创建地图节点:使用地图对象创建一个 osgEarth::MapNode 节点,作为场景图的一部分。 加载图层:使用 osgEarth::GDALImageLayer 加载 TIFF 文件,并将其添加到地图对象中。 设置查看器:创建一个 osgViewer::Viewer 对象来显示场景,并设置相应的相机操控器。 设置初始视点:设置初始视点,使查看器能够正确地显示加载的图层。 运行查看器:将地图节点添加到查看器的场景数据中,并启动查看器。

2025-02-13

osg3.6.5 osgEarth3.2加载shp文件,加载earth文件,并生成ive文件

osg3.6.5 osgEarth3.2加载shp文件,加载earth文件,并生成ive文件:正确加载 Shapefile 数据、转换并添加到场景图中、渲染设置、保存场景图、设置视图和摄像机

2025-02-13

osg3.6.5 osgEarth3.2中,加earth文件和sharp文件,解决鼠标操作地球放大、缩小、旋转发生屏闪

osg3.6.5 osgEarth3.2中,加earth文件、sharp文件、ive文件,解决鼠标操作地球放大、缩小、旋转发生屏闪

2025-01-23

osg3.6.5和osgEarth3.2下Sharp多边形渲染与控制,shp文件文件加载以及控制shp文件中不同的国家显示不同的色块

osg3.6.5和osgEarth3.2下Sharp多边形渲染与控制,shp文件文件加载以及控制shp文件中不同的国家显示不同的色块

2025-01-16

osg3.6.5和osgEarth3.2加载sharp文件,并把地图国界线替换成彩色

osg3.6.5和osgEarth3.2加载sharp文件,并把地图国界线替换成彩色

2025-01-14

osgEarth加载Sharp文件

osgEarth加载Sharp文件,使用osgearth3.2 osg3.6.5库,加载世界地图的文件Shapefile文件,完整代码和相关依赖文件

2025-01-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除