首页 - 技术 - vs2019配置qt开发环境_VS2019+QT5.15.2+QGIS二次开发环境搭建(非源码方式)

vs2019配置qt开发环境_VS2019+QT5.15.2+QGIS二次开发环境搭建(非源码方式)

2023-09-28 23:28

Qt系列文章目录

文章目录

Qt系列文章目录前言一、下载安装visual Studio2019二、Qt安装三、安装QT visual Studio Tool拓展的安装四、qt visual studio tools插件的配置五、新建vs下qt项目六、总结七、参考

前言

目前visual studio IDE几乎可以说是地表最强开发IDE,特别是是开发c++等项目,凭借其强大的调试工具成为很多开发者必选开发工具之一。本文主要介绍了如何使用visual studi2019配置qt5开发环境,以及创建qt项目,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

一、下载安装visual Studio2019

1、进入visual studio 官网下载community 2019版本(安装器)。 2、下载完成后启动visual studio 的安装器,选择需要的开发工具进行安装。

二、Qt安装

1、在此下载QT5.14.2版本的qt。 Qt5.12.9下载地址

2.下载完成后开始安装。

三、安装QT visual Studio Tool拓展的安装

2、从菜单栏以此点击–拓展----管理拓展,打开界面后点击联机,在搜索狂中搜索qt,点击下载qt visual studio tools。 3、关闭vs2019后,安装下载的插件。

四、qt visual studio tools插件的配置

2、弹出qt options界面后点击Add按钮弹出以下界面,在点击path最左侧按钮。

3、添加qt安装目录下msvc2017和msvc2017-64两个编译平台保存即可完成配置。

五、新建vs下qt项目

1、打开vs后点击新建项目。 2、选择qt widgets application项目模板。创建项目

3、设置完成创建即可。

4、点击运行项目创建完成。 5、在解决方案里打开.ui文件可以使用qt设计师对界面进行设计。 6.运行报错 解决方法:把Qt5Core.dll,Qt5Gui.dll,Qt5Widgets.dll复制到exe目录下

六、总结

到此这篇关于vs2019配置Qt5开发环境(图文教程)的文章就介绍到这了,谢谢大家

七、参考

脚本之家

目录

更新说明

学习Qt、安装Qt环境的困扰

? ? ?问题1:该选什么操作系统,该用MinGW还是msvc ?

? ? ?问题2:如果用visual studio该安装哪个qt版本?

? ? ?问题3:Qt开发商业软件需要付费授权吗?

Visual studio Qt 安装步骤

一、安装VS2019

二、安装Qt5.14?

三、安装vsaddin? ? ? ? ?

四、设置Qt路径创建Qt项目??

五、vs2019 Qt常见病症

六、我的Qt专栏

七、Qt高级开发视频教程

更新说明

--------------------------------------------

2022-01-24

? ? ? ? vs2022 qt vsaddin已经更新,可以使用了,链接:Index of /archive/vsaddin/2.8.1

目前是2.8.1,当你看到这篇博客时,可以往vsaddin那级目录看看,是不是更新了vsaddin。

? ? ? ? 本文介绍的是vs2019与qt5.14的安装,在写本文时还没有vs2019对应的qt,? 但是并不妨碍vs2019使用qt5.14对应的vs2017 qt;

? ? ? ? 大家可以选择vs2022 + qt5.15.2/或qt6的搭配安装,或者vs2019 + qt5.15.2

--------------------------------------------

学习Qt、安装Qt环境的困扰

? ? ? ? ?很多人在学习Qt时,纠结于Qt开发环境的安装,是用linux还是windows, 该安装Qt哪个版本,还有来自博客文章的观点,比如不要使用windows, 用windows没出息,直接用linux,vs2019垃圾之类的,那么就市场占有率来看,windows在日常办公依然是绝大部分,linux在后台服务器有一定的分量,开发请不要有系统歧视的心态,甚至有人除了macOS,鄙视一切windows笔记本,这种真的好吗,中国还有很多家庭,单位用不起mac笔记本。

? ? ? ? 在安装Qt开发环境之前,先声明三个问题。

? ? ?问题1:该选什么操作系统,该用MinGW还是msvc ?

? ? ? ? 操作系统可以根据各人的工作情况选,我主要说说msvc与MinGW,Qt是很优秀的图形界面跨平台开发框架,开发语言可以用C++, 也可以用python, ?建议使用C++。Qt只是一个C++开发框架,它需要C++编译器环境的支持,在windows上可以用msvc, 也就是visual studio的C++编译环境,也可以用MinGW, 类linux的C++环境,在linux则是g++/gcc, macOS则是clang, 所以在windows上安装Qt时有人疑惑为什么还要安装visual studio. 直接使用QtCreator不行吗,这个是可以的,在安装时选择MinGW版本的Qt即可,在下面的安装步骤将会看到。用visual studio, 主要是vs的调试、开发比较方便,QtCreator真是太难用了。

? ? ?问题2:如果用visual studio该安装哪个qt版本?

? ? ? ?一般来说,大概是这么个搭配

? ? ? ?vs2015匹配的大概是 Qt5.7 、5.9、5.6这些

? ? ? ?vs2017匹配的大概是 Qt5.9~~~Qt5.14

? ? ? ?vs2019/vs2022匹配的大概是 Qt5.14~~~Qt6

? ? ?问题3:Qt开发商业软件需要付费授权吗?

? ? ? ?需要授权,如果你们是上市公司,使用Qt开发应用,需要购买Qt的企业版,我们公司收到过Qt的律师函,关于费用,大家可以去看看,如果小型未上市的企业,应该问题不大,但是如果你们的应用用户很多,例如腾讯会议、剪映PC端这种软件,那还是需要Qt授权的,腾讯会议使用的商业版Qt。

? ? ? ? 个人学习,使用Qt,没有版权问题。

Visual studio Qt 安装步骤

? ? ? ? 下面正式介绍VS2019 + Qt5.14开发环境的配置, 其它版本类似,安装步骤如下:

一、安装VS2019

? ? ? ? ? VS下载链接:Visual Studio 2022 IDE - 面向软件开发人员的编程工具

? ? ? ? ? VS2019 C++主要安装模块:

? ? ? ? ? 不用C#, python的,可以只勾选C++模块:

? ? ? ? ? 扩展,Qt插件会展现在这里面? ?

?

二、安装Qt5.14?

? ? ? ?Qt5.15以后需要在线安装,本篇博客不做介绍,关于Qt5.15, Qt6的安装可以看这篇博客:【Qt5.15安装】?。

?? ? ? 如果你能翻墙,或者网速还可以,可以用这个链接下载Qt:Index of /archive/qt?,如果进不了这个链接,就用下面的清华镜像。?

? ? ? ?点击下面红框的Qt选择相应的版本,Qt5.7之前的版本不建议使用,很多功能都没有,现在最新的是5.15,可以选择5.14,低于该版本的可能没有VS2019对应的Qt.

? ? ? ? ? Qt5.14.2 如下图:

? ? ? ? ? ? ?清华镜像 清华大学开源软件镜像站 | Tsinghua Open Source Mirror? 这里有所有软件的下载链接

? ? ? ? ? ? ?找到Qt

?? ? ? ? VS2019安装好后,就可以安装Qt了,注意:安装Qt前最好断网(5.14之前的版本断网安装可以,5.15之后必须在线安装了),不然无法next,需要账号注册,很麻烦。

? ? ? ? 勾选自己需要的版本,建议32,64位的都勾上,没有VS2019, ?但是vsaddin插件依然可以找到VS2017的Qt, 安装步骤主要截图如下:

三、安装vsaddin? ? ? ? ?

? ? ? ? Qt安装结束后,再安装Qt VS插件,还是前面的链接,找到vsaddin

? ? ? ? ? ?选择VS2019的版本, 我选的是2.5版本

? ? ? ? ? ? 安装VS Qt插件前,关闭VS,Qt, 插件会自动识别VS的版本,如下图

? ? ? ? 注意:在安装vsaddin插件时,某些情况下可能会失败,比如windows sdk版本太低,win10系统安装有问题,win10系统太久没更新,都有可能导致vsaddin安装失败。? ? ? ?

四、设置Qt路径创建Qt项目??

? ? ? ? 以上都安装好后,打开VS,由于VS2019相对于之前的版本启动界面做了一些改动,先任意新建一个C++项目,设置Qt路径,不设置Qt路径的界面可能会这样

? ? ?Qt路径设置如下图:

2021-11-17 更新---------------------------------------------------------------------------

新版的qt vsaddin插件,不再是用Qt Options设置Qt路径,而是Qt Version,如下图:

点击之后

?注意qt路径,不要包含到bin这一层

?另外,vs2022也可以使用qt插件了,11月15更新的

?下面的图例是比较早的qt vsaddin插件配置图,2.6之后估计就不适用了。

------------------------------------------------qt vsaddin 2.6-----------------------------------------------------------

? ? ? ??

? ? ? ? ?

? ? ? ? ? ? ? ? 找到Qt安装路径,选择msvc2017目录,这是32位的,添加ok后,也可以把64位的添加上

? ? ? ? ? 再次点击Add就可以添加其它版本的Qt了,箭头可以切换Qt版本。?

------------------------------------------------qt vsaddin 2.6 end-------------------------------------------------------

? ?? ? ? ?Qt路径设置后,再新建Qt程序,如下图,可以选择GUI程序和控制台程序,例如我创建的是GUI项目

? ? ? ? ? 选择Qt版本与编译方式,选择debug即可,创建后,如果想用release发布,就在vs中换成release.

? ? ? ? ? ? ?项目解决方案如下:

? ? ? ?打开ui文件就可以拖拽控件了,如果你想手写ui也可以,新建Qt类即可,其它的编译调试和C++项目一样。

? ? ? ?如果windows系统版本过低,可能会编译失败,建议更新windows系统,至少更新到19041之后的版本。 ?? ? ? 以上是VS2019 Qt开发环境的配置,一点说明:用VS Qt 开发的项目,尽量别经常换VS Qt的版本,VS2019至少可以用8-10年,Qt5.14也是很新的版本,不同版本的VS Qt在打开项目后,有可能无法编译,这种情况可以改好,稍微有点麻烦,如果你身边有C++老司机那还还说,不然一个人就很容易出问题的。

? ? ? ? VS Qt的项目也可以转化成QtCreator项目,改下配置和第三方依赖,跨平台时特殊的库用宏指定,如果不想跨平台, 那在VS上就随便搞了。

五、vs2019 Qt常见病症

? ? ?(1)windows QtCreator经常崩溃:windows上QtCreator经常未响应,崩溃,如何解决_C++/Qt/音视频/RTC-CSDN博客_qtcreator总是未响应

? ? ?(2)重装无法编译:一步解决Error while building/deploying project MyQtDemo (kit: Desktop Qt 5.7.0 MSVC2015 32bit) When exec_C++/Qt/音视频/RTC-CSDN博客

? ? ?(3)调试时出现 Unable to create a debugging engine :一步解决QtCreator调试时出现 Unable to create a debugging engine_C++/Qt/音视频/RTC-CSDN博客

? ? (4)vs2019 qt打开ui文件闪退的解决办法:vs2019 qt打开ui文件闪退的解决办法_令狐掌门的博客-CSDN博客

? ? ? (5)??VS2019 Qt win32项目如何添加x64编译方式??VS2019 Qt win32项目如何添加x64编译方式_令狐掌门的博客-CSDN博客

六、我的Qt专栏

Qt 基础入门?Qt基础https://www.gsm-guard.net/yao_hou/category_10300102.html?spm=1001.2014.3001.5482

Qt 进阶专栏【收费,持续更新】?Qt高级进阶教程https://www.gsm-guard.net/yao_hou/category_9276099.html

QML基础入门??Qt Quick 入门教程https://www.gsm-guard.net/yao_hou/category_9951228.html

Python Qt基础入门??PyQt开发教程https://www.gsm-guard.net/yao_hou/category_9853212.html

Qt开源项目OBS源码分析??OBS源码分析https://www.gsm-guard.net/yao_hou/category_11128777.html

C++ Qt OBS源码分析视频课程【收费】:C++ Qt OBS源码屏幕录制软件开发视频教程https://www.gsm-guard.net/course/detail/36019

七、Qt高级开发视频教程Qt高级开发视频教程https://www.gsm-guard.net/course/detail/37447

? ? ?

0.前言

? ? ? 近来要利用QGIS进行开发,顺便记录一下开发环境的配置。本篇为非源码编译方式,比较省时间,但不适合debug版,本博文是针对release版本来的。debug版本的需要利用源码编译才行,关于源码编译安装QGIS,请参见:《Win10下通过源码编译安装QGIS》。

1.开发环境

VS2019+QT5.15.2+QGIS 注意,QT 平台的版本与qgis下载的版本有关,以前采用OSGeo4w64来下载qgis时会区分32和64位,但现在官网已经不再区分。 如果下载qgis-ltr(官网的长期支持版,qgis 2.18),那么建议qt采用5.0以下的版本; 如果下载qgis 是3.0版本以上,个人建议qt版本,下载高于qt5.9.2; 另外如果是使用VS2013,那么不能编译qgis3.0版本以上的,c++11个部分语法报错。

2.VS2019下载

visual Studio可以直接从官网下载:https://www.gsm-guard.net/zh-hans/vs/

3.QT5下载

? ? ? Qt 官网有一个专门的资源下载网站,所有的开发环境和相关工具都可以从这里下载,具体地址是:https://www.gsm-guard.net/official_releases/qt/

在安装Qt时可以根据需要选择模块,如果用vs进行开发就选择mscv以及对应的VS版本,如果用Qt开发就只选MinGW就可以了。

4. VS2019安装QT插件

打开VS2019,选择 扩展->管理扩展->搜索框中输入“qt”

然后选择 Qt visual studio Tools 进行安装,安装时要关闭VS2019. 安装完成后,打开VS2019->扩展->Qt VS Tools ->Options -> Versions ->将下载的Qt的编译器添加进来,如果用VS开发,就选择mscv2019_64,这一步骤完成。

5.QGIS下载及安装

? ? 在安装QGIS的时候,会同时下载QT5,步骤3也可以省略,但为了之后进行开发方便,最好还是安装QT5。QGIS官网网站: https://www.gsm-guard.net/en/site/

下载OSGeo4w,安装时选择这个网址:https://www.gsm-guard.net/en/site/forusers/download.html 点击下载:

下载好后,双击安装包进行安装,(1)选择Andvance Install:

?(2)选择install from Internet

(3)选择安装路径,可以自己更改

?

(4)选择Direct Connection

?

(5)选择第一个网址?

(6)搜索qgis,点击Libs后面,选择为install,人然后点下一步,直到安装完成。

?

至此QGIS就安装完成了。

6.启动VS,创建Qt工程。

? ? ? ?启动VS后,新建项目,搜索Qt,找到QtWidgetsApplication后进行创建新项目,我这里直接用默认名称QtWidgetsApplication1。 注意,在导入模块的时候要把XML勾选上,否则运行的时候会报错。如果这里不勾选,也可以创建好后,在VS中的扩展->QT VS Tools -> QT project settings ->Qt Modules中进行添加(下图)。

?创建好后,将版本改为release ×64

7. 配置项目属性

在C++ ->常规 -> 附加包含目录中添加以下项(具体路径需要做适当调整):

C:\path\to\OSGeo4W64\include

C:\path\to\OSGeo4W64\apps\qgis\include

?在链接器 ->常规 -> 附加库目录中添加以下项(具体路径需要做适当调整):

C:\path\to\OSGeo4W64\apps\qgis\lib;

在“链接器” ->”输入” -> “附加依赖项”中添加以下项:

qgis_app.lib

qgis_core.lib

qgis_gui.lib

?接着修改项目文件:main.cpp

#include "QtWidgetsApplication1.h"

#include

#include

int main(int argc, char *argv[])

{

QgsApplication a(argc, argv, true);

QgsApplication::setPrefixPath("F:/OSGeo4WQGIS/apps/qgis", true);

QgsApplication::initQgis(); //初始化QGIS应用

QtWidgetsApplication1 w; //创建一个窗体,类似于Qt

www.gsm-guard.net();

return a.exec();

}

QtWidgetsApplication1.h

#pragma once

#include "ui_QtWidgetsApplication1.h"

#include

#include

#include

#include

class QtWidgetsApplication1 : public QMainWindow

{

Q_OBJECT

public:

QtWidgetsApplication1(QWidget *parent = Q_NULLPTR);

private:

Ui::QtWidgetsApplication1Class ui;

// create the menus and then add the actions to them.

QMenu* fileMenu;

QAction* openFileAction;

//map canvas

QgsMapCanvas* mapCanvas;

QList layers;

public slots:

void on_openFileAction_triggered();

public:

void addVectorLayer();

};

?QtWidgetsApplication1.cpp

#include "QtWidgetsApplication1.h"

#include

#include

#include

#include

QtWidgetsApplication1::QtWidgetsApplication1(QWidget *parent)

: QMainWindow(parent)

{

this->resize(600, 400);

// create the menus and then add the actions to them.

fileMenu = this->menuBar()->addMenu("File");

openFileAction = new QAction("Open", this);

this->connect(openFileAction, SIGNAL(triggered(bool)), this, SLOT(on_openFileAction_triggered()));

fileMenu->addAction(openFileAction);

// initialize the map canvas

mapCanvas = new QgsMapCanvas();

this->setCentralWidget(mapCanvas);

mapCanvas->setCanvasColor(QColor(255, 255, 255));

mapCanvas->setVisible(true);

mapCanvas->enableAntiAliasing(true);

}

void QtWidgetsApplication1::on_openFileAction_triggered()

{

addVectorLayer();

}

void QtWidgetsApplication1::addVectorLayer()

{

QString fileName = QFileDialog::getOpenFileName(this, tr("Open shape file"), "", "*.shp");

QStringList temp = fileName.split('/');

QString basename = www.gsm-guard.net(temp.size() - 1);

QgsVectorLayer* vecLayer = new QgsVectorLayer(fileName, basename, "ogr");

if (!vecLayer->isValid())

{

QMessageBox::critical(this, "error", QString("layer is invalid: \n") + fileName);

return;

}

mapCanvas->setExtent(vecLayer->extent());

layers.append(vecLayer);

mapCanvas->setLayers(layers);

mapCanvas->refresh();

}

运行后可以打开*.shp文件并进行显示。

8.注意:报错及解决办法

1.再次运行程序后会遇到缺少各种DLL的错误,这时候有两种方法:

将C:\path\to\OSGeo4W64\bin和C:\path\to\OSGeo4W64\app\qgis\bin添加到环境变量Path中 将C:\path\to\OSGeo4W64\bin和C:\path\to\OSGeo4W64\app\qgis\bin中的DLL全部拷贝到生成的exe的目录下。 这时再次运行程序,可能还是会缺少各种DLL,如果是以Qt5开头的,在C:\path\to\OSGeo4W64\app\Qt5中查找;如果是其他的DLL,可以在你的系统中查找,推荐使用everything软件进行。

2. warning C4003: “max”宏的实参不足

解决方案 -》 属性 -》 c/c++ -》预处理器 -》 预处理器定义,加上NOMINMAX即可

3.“QtGui/QApplication”: No such file or directory

QApplication已经从原来的 移动到

4.警告 C4819 警告 C4819 该文件包含不能在当前代码页(936)中表示的字符。 请将该文件保存为 Unicode 格式以防止数据丢失

(1)找出警告的文件,然后在该文件的开始处加入下面的语句:# pragma warning (disable:4819)

(2)如果是 VS IDE,还可以:在Project -> Properties -> Configuration Properties -> C/C++ -> Advance 的 Disable Specific Warnings 中添加相应的警告编号:4819;

5.#if QT_HAS_INCLUDE() || defined(Q_QDOC) 这句子出错了

解决方法:工具-〉选项-〉文本编辑器-〉c/c+±>高级-〉禁用自动更新改为:TRUE

6.无法打开包括文件: “QDomNode”

项目——>”XXX属性"——>配置属性——>C/C++——>配置环境 E:\aaaQGIS\OSGeo4W64\OSGeo4W64\apps\Qt5\include\QtXml

7.error C2065: “M_PI”: 未声明的标识符

项目——>”XXX属性"——>配置属性——>C/C++——>预处理器——>预处理器定义, 将“_USE_MATH_DEFINES”添加进去

8.Q_OBJECT的类声明 由于 moc 只处理头文件中的标记了Q_OBJECT的类声明,不会处理 cpp 文件中的类似声明。 因此,如果我们的Newspaper和Reader类位于 main.cpp 中,是无法得到 moc 的处理的。 解决方法是,我们手动调用 moc 工具处理 main.cpp, 并且将 main.cpp 中的#include "newspaper.h"改为#include "moc_newspaper.h"就可以了

9.无法将静态函数作为内联函数online 右键项目属性,配置属性->常规,将C++语言标准和C语言标准改为C++17:

本文转自:VS2019+QT5.15.2+QGIS二次开发环境搭建_BetterQ.的博客-CSDN博客_qgis和qt二次开发?

0条大神的评论

发表评论