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
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条大神的评论