QGIS 3.x API更新:兼容性调整与主要变化

需积分: 9 1 下载量 153 浏览量 更新于2024-07-16 收藏 658KB PDF 举报
QGIS API Documentation的Backwards Incompatible Changes主要关注了从QGIS 2.x到QGIS 3.x版本之间的接口和功能差异。随着QGIS的发展,为了提高性能、优化设计和适应新的开发需求,一些API元素经历了重大调整,这可能会对开发者在编写与QGIS集成的C++应用时带来挑战。以下是部分关键更改的概述: 1. **QgsMapToPixel**: 在QGIS 3.0中,`QgsMapToPixel`类的位置或行为可能发生了变化,这可能影响到地图坐标到像素坐标的转换。 2. **Moved Classes**: 部分类被移动到了新的位置或者库中,这要求开发者更新代码引用,以确保找到正确的类路径。 3. **Renamed Classes**: 有些类名进行了更改,这可能导致原有的代码中使用到的类找不到,开发者需要更新所有涉及到这些类名的地方。 4. **Renamed Enum Values**: 枚举值的名称也有可能发生变化,这可能会影响到依赖于特定枚举值的应用逻辑。 5. **Renamed Methods**: 方法的命名规则可能改变,这可能需要在调用相应方法的代码中进行相应的修改。 6. **Removed Classes**: 一些旧的或不再推荐使用的类已被移除,开发者需要避免使用这些类,以避免编译错误或功能缺失。 7. **General changes**: QGIS的整体架构和设计可能有全局性的改动,例如在Composer模块中的布局处理、标签功能的改进,以及数据提供者的接口变更。 8. **Composer**: 在新版本中,Composer可能引入了新的组件或接口,开发者需要熟悉这些变化以充分利用。 9. **Labeling**: 可能有新的标签设置和定制选项,可能需要重新配置文本标签的生成和显示方式。 10. **Data Providers**: 数据提供者API可能进行了扩展或调整,以便支持更多的数据源和更丰富的数据处理功能。 11. **Qgis, QgisInterface, CharacterWidget**: 这些核心接口和控件的更新可能影响到应用程序的初始化和用户交互。 12. **QgsAbstractGeometry**: 基础几何对象的抽象类可能添加了新功能或要求不同的使用方法。 13. **QgsActionManager, QgsAction**: 与动作管理相关的类可能有了新的行为或参数,影响插件和菜单管理。 14. **QgsAdvancedDigitizingDockWidget**: 用于高级数字化工具的插件可能有了新的设计或配置要求。 15. **QgsApplication**: 应用级的API可能进行了性能优化或增加了新的配置选项。 16. **QgsAttributeDialog, QgsAttributeForm**: 属性对话框和表单的界面或功能可能有所变化。 17. **QgsAuthConfigUriEdit, QgsAuthManager, QgsAuthMethod**: 身份验证相关类的更新可能影响到认证流程。 18. **QgsBlurEffect, QgsColorBrewerColorRampDialog**: 图层效果和颜色调色板对话框可能提供了新的视觉样式。 19. **QgsColorSchemeRegistry**: 颜色方案的注册和管理机制可能有所不同。 20. **QgsConditionalLayerStyle, QgsConditionalStyle**: 条件式图层样式和条件样式可能需要新的方法来定义规则。 21. **QgsCoordinateReferenceSystem, QgsCoordinateTransform**: 坐标系统管理和转换函数可能更新了处理地理坐标的方式。 从QGIS 2.x到QGIS 3.x的API变化涵盖了类名、方法、结构和功能的多个层面,开发者在升级项目时应仔细查阅官方文档,如`https://qgis.org/api/api_break.html`,以确保代码的兼容性和性能。同时,逐步迁移代码并进行充分测试是避免问题的关键。