最近一直在琢磨QGIS的二次开发,也踩过不少坑,好在最后的结果是好的。这里介绍一下我最喜欢的二次开发姿势。
VS2017 Community、QGIS3.18.3、QT5.11.2、Windows SDK版本 10.0.17763.0、VS2017的QT插件版本 2.8.1或者2.9.1
// Member
class MyClass : public QWidget {
Q_OBJECT
public:
MyClass(QWidget* parent = nullptr);
~MyClass();
// ...
private:
Ui::MyClass ui;
};
// Member Pointer
class MyClass : public QWidget {
Q_OBJECT
public:
MyClass(QWidget* parent = nullptr);
~MyClass();
// ...
private:
Ui::MyClass* ui;
};
// Multiple Inheritance
class MyClass : public QWidget, public Ui::MyClass {
Q_OBJECT
public:
MyClass(QWidget* parent = nullptr);
// ...
};
选择Release版本,先把常用的QT模块勾选上,例如Gui、Xml、Widgets、Core、Svg。后续需要哪个模块再添加即可。
配置调试环境
QT_PLUGIN_PATH=D:\OSGeo4W64\apps\Qt5\plugins
设置VC++ 目录
D:\OSGeo4W64\include
D:\OSGeo4W64\apps\qgis\include
D:\OSGeo4W64\lib
D:\OSGeo4W64\apps\qgis\lib
设置预处理器
_USE_MATH_DEFINES
设置UTF8编码
在C/C++ ---- 所有选项 ---- 附加选项 中,填入
/utf-8
设置附加依赖项
qgis_app.lib
qgis_core.lib
qgis_gui.lib
设置子系统
控制台 (/SUBSYSTEM:CONSOLE)
可以愉快的写代码了。