杰仔 2ee6bcd414 refactor(CloudView): 拆分缩放按钮布局逻辑为独立函数
1.  将原eventFilter中的缩放按钮位置计算代码抽离为updateZoomButtonGeometry独立函数
2.  在创建视图区域时主动调用该函数初始化按钮位置
3.  统一处理GL控件resize时的按钮重定位逻辑,提升代码可读性
4.  修复原代码未在初始化时设置按钮位置的问题
5.  新增按钮置顶操作确保缩放按钮始终显示在最上层
2026-09-11 15:18:33 +08:00
2026-07-13 18:56:01 +08:00
2026-08-05 11:48:29 +08:00

Utils 工具库模块

这是一个独立的 Qt 工具库模块,包含了项目中常用的基础工具类和实用功能。

模块结构

Utils/
├── VrCommon/           # 核心接口和数据结构
│   ├── Inc/           # 公共头文件
│   │   ├── VrCommon.h
│   │   ├── VrConfigCmd.h
│   │   └── VrError.h
│   └── Src/           # 源文件
│
├── VrUtils/           # 工具类库
│   ├── Inc/           # 工具类头文件
│   ├── Src/           # 工具类源文件
│   ├── jsoncpp/       # JSON 解析库
│   ├── log4cpp/       # 日志库
│   ├── tinyxml2/      # XML 解析库
│   ├── ini/           # INI 配置文件解析
│   ├── MD5/           # MD5 加密
│   └── crc/           # CRC 校验
│
├── CloudUtils/        # 点云工具
│   ├── Inc/
│   │   ├── LaserDataLoader.h
│   │   └── PointCloudImageUtils.h
│   └── Src/
│
├── DataUtils/         # 数据处理工具
│   ├── CloudMathClac/      # 点云数学计算
│   └── CoordinateTransform/ # 坐标转换
│
└── CloudViewApp/      # 点云查看工具(独立应用)
    ├── Inc/
    ├── Src/
    └── resource/

构建说明

作为子模块构建

在主项目的 .pro 文件中添加:

Utils.file = ../Utils/Utils.pro
SUBDIRS += Utils

# 设置依赖关系
YourModule.depends = Utils

独立构建

cd Utils
qmake Utils.pro
make

模块说明

VrCommon

核心接口和数据结构定义,包括:

  • 配置接口定义
  • 错误码定义
  • 配置命令数据结构

VrUtils

通用工具类库,包括:

  • 日志工具: 基于 log4cpp 的日志系统
  • JSON 解析: jsoncpp 库
  • XML 解析: tinyxml2 库
  • INI 配置: SimpleIni 库
  • 加密工具: MD5、CRC 校验
  • 时间工具: 时间格式化、NTP 同步
  • 网络工具: 网络相关实用函数
  • 文件工具: 文件操作相关函数
  • 字符串工具: 字符串处理函数

CloudUtils

点云数据处理工具,包括:

  • 激光数据加载器
  • 点云图像转换工具

DataUtils

数据处理工具集,包括:

  • CloudMathClac: 点云数学计算(曲线拟合等)
  • CoordinateTransform: 坐标系转换工具

CloudViewApp

点云可视化查看工具(独立应用程序)

使用示例

在项目中引用

# 包含路径
INCLUDEPATH += $$PWD/../Utils/VrCommon/Inc
INCLUDEPATH += $$PWD/../Utils/VrUtils/Inc

# 链接库
win32:CONFIG(release, debug|release): {
    LIBS += -L$$PWD/../Utils/VrCommon/release -lVrCommon
    LIBS += -L$$PWD/../Utils/VrUtils/release -lVrUtils
}
else:win32:CONFIG(debug, debug|release): {
    LIBS += -L$$PWD/../Utils/VrCommon/debug -lVrCommon
    LIBS += -L$$PWD/../Utils/VrUtils/debug -lVrUtils
}
else:unix:!macx {
    LIBS += -L$$PWD/../Utils/VrCommon -lVrCommon
    LIBS += -L$$PWD/../Utils/VrUtils -lVrUtils
}

依赖关系

  • VrUtils 依赖 VrCommon
  • CloudUtils 依赖 VrCommon 和 VrUtils
  • DataUtils 依赖 VrCommon
  • CloudViewApp 依赖 VrCommon、VrUtils 和 CloudUtils

编译要求

  • Qt 5.x 或更高版本
  • C++11 或更高版本
  • 支持平台:Windows (MSVC/MinGW)、Linux (ARM/x86_64)

许可证

内部项目使用

Description
公用工具类及工具
Readme 2.6 MiB
Languages
C++ 87.6%
C 11.3%
QMake 0.7%
CMake 0.4%