- 博客(17)
- 收藏
- 关注
原创 WGS-84与GCJ-02(高德)转换
摘要:本文介绍用于坐标系转换的QGCTransform类,实现WGS-84与GCJ-02坐标系的相互转换。代码基于C++11标准,包含度分转换、坐标偏移计算等核心算法,采用克拉索夫斯基椭球参数进行精确计算。类方法包含:判断国内坐标范围的outOfChina()、度分转换dmToDegrees()、经纬度偏移计算transformLat/Lon()以及核心转换函数wgs84Togcj02()。该代码已在VS2022+QT5.15.2环境下测试通过,适用于需要处理中国加密坐标的GIS应用开发。代码结构清晰,通过
2025-05-30 09:35:02
154
原创 C++QT qss样式表美化
本文介绍了Qt界面设计中多个控件的样式定制方法,包括QLabel、QLineEdit、QGroupBox、QToolButton、QComboBox和QSpinBox。重点展示了QToolButton的复杂样式实现:通过样式表设置基础状态、悬停状态和按下状态的样式变化,并详细说明了事件过滤器(EventFilter)的运用,以解决Qt原生无法实现图标切换的问题。文章还介绍了分组按钮的特殊样式处理,以及如何为其他控件设置圆角、边框、悬停效果等常见样式属性,这些技巧能显著提升Qt应用程序的视觉体验。
2025-05-27 10:23:28
243
原创 vs+qt自定义QTabWidget界面
本文展示了一个基于Qt框架的自定义标签页控件实现。通过继承QTabBar和QTabWidget创建了TabBar和CustomTabWidget类,主要功能包括:1) 自定义标签尺寸计算和布局,支持图标、文字和间距设置;2) 支持自定义标签图标和样式;3) 可配置字体大小、图标宽度和内边距;4) 通过样式表实现圆角和颜色定制。文中特别提到实现过程中遇到多层QWidget叠加导致的背景色设置问题,最终通过透明化最上层控件解决了该问题。调用示例展示了如何创建带图标的标签页,并提供了与自定义标题栏结合使用的布局方
2025-05-26 17:09:36
146
原创 VS+QT使用qss设计自定义标题栏
本文展示了一个基于Qt框架的自定义标题栏实现方案。该方案通过NormalTitleBar类继承QWidget,提供了灵活的标题栏定制功能,包括:1) 支持logo图标和项目名称显示;2) 可配置的按钮组合(最小化/最大化/关闭);3) 自定义样式和布局控制;4) 窗口拖动和双击最大化功能。实现中采用了面向对象设计,通过枚举类型区分不同按钮组合,并提供两种典型的使用模式:作为独立组件或在现有界面中嵌入。代码还展示了如何通过重写paintEvent实现圆角窗口效果,体现了Qt框架在GUI定制方面的灵活性。
2025-05-26 16:44:01
130
原创 VS+QT使用Q3DScatter实现实时三维无人机飞行轨迹
之前的无人机项目需要有一个三维图表用来展示无人机实时的飞行轨迹图,之前我也没接触过三维图表相关的内容,查找了一番资料之后确定了使用Q3DScatter来实现这个操作。
2025-04-29 14:35:00
346
原创 C++QT中的异步QtConcurrent与多线程,如何选取?
优先选择:适用于简单、独立的并行任务,代码更简洁,资源利用率更高。使用QThread:当需要精细控制线程行为或处理长期运行、复杂的多线程交互时。根据任务需求灵活选择,混合使用不同机制(如结合信号槽)可进一步提升效率。
2025-04-28 10:36:24
370
原创 C++QT中如何使用多线程
Qt的信号槽不直接支持异常传递,需在槽函数内部捕获异常并通过信号传递错误信息。:使用moveToThread或QtConcurrent::run。:使用Valgrind、Qt Creator的调试器分析线程问题。:确保线程和Worker对象在完成后正确删除,避免内存泄漏。:使用QueuedConnection确保线程安全。Qt的信号与槽自动处理跨线程通信,需注意连接类型。:在槽函数内捕获异常,通过信号传递错误。:处理耗时任务,通过信号与主线程通信。:检查锁的获取顺序,确保一致。:正确释放线程和对象资源。
2025-04-28 10:21:04
391
原创 C++QT调用高德地图Api展示实时无人机飞行轨迹
最近公司要做一个关于无人机飞行测量某种物质的项目,但是作者只在大学的时候接触过JS,上班之后致力于C++,已经忘了JS相关内容。不过那段时间正好deepseek横空出世,帮我解决了这个大难题,在这里记录一下学习历程。这里调用的是高德地图的Web端的接口,环境:VS2022+QT5.15.2。
2025-04-19 16:14:10
1011
原创 VS2019+QT5.15.2 使用Release版本编译SQLite出现Driver not loaded的错误
写了简单的打开数据库创建表的操作,在debug模式下运行十分顺畅,本以为这样就弄完了这部分,使用Release模式重新测试一下整个项目,但是发现数据库这里到open就报错,输出一下错误提示,发现是driver not loaded(应该是这个错误,昨天错的时候没有记录下来)。东找西找修改了好多种解决方式,最后无意间发现将QT安装路径下。但是看别的博主发的,打包之后可能还会有问题,等我打包出现问题的话继续记录。
2025-04-18 10:37:12
192
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人