在visual studio里配置Qt插件并运行Qt工程

    Qt插件,也叫qt-vsaddin,它以*.vsix后缀名结尾。visual studio简称为VS,从visual studio 2010版本开始,VS支持Qt框架的开发,Qt以插件方式集成到VS里。这里简述在visual studio 2019里配置Qt 5.14.2插件,并配置Qt环境、编译和运行Qt工程。

1 下载VS2019

    下载VS2019,官网地址: https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/
    个人地址: https://pan.baidu.com/s/1VaQC5_CprbTtp8mbPWCaBA
提取码:uo1b
    双击该安装包,选中"使用C++的桌面开发",然后一路默认,直到安装完成。

图(1) 下载VS2019

图(2) 安装VS2019,并勾选C++组件

2 注册Qt账号和下载Qt 5.14.2

2.1 注册Qt账号

    在 login.qt.io/register官网,注册一个Qt账号,如下所示:

图(2.1) 注册Qt账号

2.2 下载Qt安装包

    Qt安装包分为离线安装包、在线安装包。从Qt 5.15版本开始,Qt官网只能下载在线安装包。而低于Qt5.15版本的,则可以下载离线安装包,例如Qt5.14.2就有离线安装包。为了加快安装速度,选择Qt 5.14.2,如图(3)所示。
    Qt 5.14.2老官网地址: https://download.qt.io/archive/qt/5.14/5.14.2/
    Qt 5.14.2新官网地址: https://download.qt.io/new_archive/qt/5.14/5.14.2/

    Qt其他历史版本地址: https://download.qt.io/new_archive/qt/

图(3) 下载Qt 5.14.2 安装包

    安装包下载好之后,双击该安装包,选择安装目录: D:\Qt,这里选择64位的开发方式,即64-bit。

  • 编译器选2个:MSVC 2017 64-bit(VS编译器)、MinGW 7.3.0 64-bit(类Linux编译器);
  • 开发工具包选择:Qt Creator 4.11.1 CDB Debugger Support和MinGW 7.3.0 64-bit。
  • Qt组件,这些组件是按需选择的,自己需要什么,就勾选什么。
    其中,Sources是Qt源码包,主要用于查看函数定义、调试代码使用;
组件作用
SourcesQt源码包,用于查看类结构和函数定义
Qt Charts界面二维图表模块,用于绘制饼图、曲线图、柱状图等二维图形
Qt Quick 3DQuick的扩展,渲染3D内容
Qt Data Visualization三维显示与绘制模块,绘制三维曲线、三维空间分布
Qt Lottie AnimationLottie动画的Qt版本,渲染JSON格式的动画
Qt Purchasing购物模块,支持Andriod、iOS和Mac
Qt Virtual Keyboard虚拟键盘,支持QML和本地键盘布局
Qt Network Authorization网络模块 ,支持TCP、UDP、HTTP等协议
Qt Script脚本模块,已迁移到QML
Qt Quick Timeline动画控制,关键帧设置
图(2.2) 勾选编译组件和Qt组件

2.3 配置Path路径

    点击桌面左下角【开始】–》设置 --》输入:环境变量 --》设置 --》找到系统环境变量Path,添加的路径如下:

path = D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin;D:\Qt\Qt5.14.2\Tools\QtCreator\bin;

    如图(2.3)所示:

图(2.3) 配置path环境

2.4 验证Qt环境

    按Win+R快捷键,输入: cmd,进入DOS环境,输入命令: qmake --version

## 查看Qt的版本号
qmake --version

    若能正确打印Qt的版本号,说明Qt环境配置成功,如图(4)所示:

图(2.4) 查看Qt版本号,以验证Qt环境

    如图(2.4)所示,可以正常打印QMake的版本为v3.1, Qt的版本为v5.14.2,说明Qt环境配置成功。

3 下载并安装qt-vsaddin插件

    qt-vsaddin插件,到2023年10月最新版本为v3.0.1,每个VS软件支持的qt-vsaddin插件不一样,通常选择最稳定的qt-vsaddin插件版本,而不是最新版本。这里选择qt-vsaddin-msvc2019-2.9.7,如图(5)所示。

    qt-vsaddin 2.7.1 官网地址: https://download.qt.io/archive/vsaddin/2.7.1/
    qt-vsaddin 2.7.1 个人地址: https://pan.baidu.com/s/14SiwSO-72wUTu2-OpKASCQ 提取码:0at8

图(5) 下载qt-vsaddin插件

4 配置Qt 5.14.2 环境

4.1 在VS2019里配置Qt环境

    点击vs2019菜单栏上的【扩展】–》Qt VS Tools --》Qt Versions

图(7) 在VS软件里,配置Qt VS Tools

图(8) 设置编译路径和路径名称

    编译路径,即qmake.exe所在的目录。这里选择msvc_64的编译方式和编译路径。
编译方式编译路径(即qmake.exe所在目录)
msvc_32D:\Qt\Qt5.14.2\5.14.2\msvc\bin
msvc_64D:\Qt\Qt5.14.2\5.14.2\msvc_64\bin
gcc_32(或MingW32)D:\Qt\Qt5.14.2\5.14.2\mingw73\bin
gcc_64(或MingW64)D:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin
路径名称: msvc201764
编译路径: D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin

5 创建工程

5.1 创建HelloQt工程

    点击VS2019菜单栏上的[文件] --》新建 --》Qt Widgets Application --》下一步 ,

图(9) 选择Qt Widgets Application类型

图(10) 设置工程名称和工程路径

图(11) 下一步

    默认是3个组件:Core、Gui、Widgets,如图(12)所示,这里添加一个支持控制台打印的组件: PrintSupport,变成4个组件,如图(12)、图(13)所示。

图(12) QWidget默认的组件有3个:Core、Gui、Widgets

图(13) 添加一个PrintSupport组件

图(14) 有4个组件

图(15) 基类选择: QWidget

5.2 配置Qt工程

    右击HelloQt工程 --》属性 --》配置属性 --》Qt Project Settings --》 Qt Installation --》输入第4.1节里的路径名称 --》OK

路径名称: msvc201764
编译路径: D:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin
图(16) 设置Qt Installation的路径名称

5.3 编译和运行

    按Ctrl+Shit+B编译工程,按F5运行工程,如下所示:

图(17) 在VS里编译和运行Qt工程

    至此,Qt工程,在VS里编译和运行成功!

<think>嗯,用户想知道在QT6中如何正确指定和链接核心模块及组件,比如core、gui和widgets,且正确配置LIBS链接。我之前看过相关的引用内容,需要仔细分析这些信息。 首先,用户提到的引用[1]中有关于find_package的使用,面提到了查找Qt6或Qt5,且需要Widgets组件。这说明在CMake配置中,正确的模块查找是关键。引用[3]的main.pro文件展示了如何通过QT += core gui widgets来添加模块,这是在qmake项目中的做法,但用户可能是在问CMake的情况,或者两者都需要说明? 另外,用户的问题明确提到QT6,所以需要确保所有的配置都是针对Qt6版本的。引用[2]提到在Qt6下编译第三方组件,可能需要特别注意模块的版本,比如Qt6的模块结构和Qt5不同,需要正确引用。同时,引用[4]中配置OpenCV时勾选了WITH_QT和WITH_OPENGL,可能涉及到Qt的库链接,但用户的问题更偏向于Qt自身模块的配置。 用户需要明确指定core、gui、widgets这些模块,正确链接。在CMake中,正确的做法是使用find_package来查找Qt6的组件,然后通过target_link_libraries来链接对应的库。比如,引用[1]中的示例可能可以拆解为:先查找Qt6,然后根据找到的版本链接对应的模块。例如,find_package(Qt6 COMPONENTS Core Gui Widgets REQUIRED),然后链接到目标库。 不过,Qt6的每个组件通常是单独的包,所以可能需要分别查找,比如find_package(Qt6Core REQUIRED)、find_package(Qt6Widgets REQUIRED)等。但更常见的做法是使用find_package(Qt6 COMPONENTS Core Gui Widgets REQUIRED),然后链接到Qt6::Core、Qt6::Gui、Qt6::Widgets。这可能取决于具体的CMake配置。 在qmake中,用户只需要在.pro文件中添加QT += core gui widgets,如引用[3]所示。但用户的问题可能更关注CMake的配置,因为Qt6推荐使用CMake作为构建系统,尤其是在较新的版本中。 另外,关于LIBS的配置,在qmake中,用户可能通过LIBS += -L...来添加库路径,但在CMake中则是通过target_link_libraries自动处理。不过用户提到正确配置LIBS链接,可能需要确保库的路径正确,以及链接顺序正确。比如,在CMake中,正确链接到Qt6的模块会自动处理依赖关系,不需要手动设置库路径,除非有第三方库或自定义库需要链接,这时候可能需要使用-L和-l,如引用[3]中的例子,链接到用户自己的插件库。 总结下来,用户需要的是在QT6中如何正确配置核心模块,可能是在CMake或qmake中的不同方法。需要分情况说明,给出具体的示例。同时,要确保语法正确,比如在CMake中正确使用find_package和target_link_libraries,以及在qmake中的QT +=模块。此外,LIBS的配置可能涉及第三方库的链接,需要根据具体情况处理。 可能还需要注意Qt6的模块化结构,比如Core、Gui、Widgets这些模块是否需要按顺序引入,或者是否有其他依赖需要处理。例如,Widgets模块可能依赖于Gui和Core,所以在链接时只需要链接Widgets,但实际使用时可能需要明确包含所有依赖模块。不过,现代构建系统通常会自动处理这些依赖,所以显式声明所有需要的模块更安全。 另外,检查用户提供的引用,引用[3]中的.pro文件使用了QT += core gui widgets,这适用于qmake项目。而引用[1]中的CMake代码则展示了如何动态处理Qt版本,先查找QT的版本(6或5),然后根据找到的版本查找对应的组件。例如,find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets),然后find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)。这可能是一个通用的方法,但用户可能需要更直接的Qt6配置,所以需要调整示例,直接使用Qt6的组件。 最后,生成相关问题需要考虑用户可能遇到的后续问题,比如如何处理模块未找到的错误,如何链接第三方库,或者如何迁移Qt5项目到Qt6时的配置变化等。</think>在QT6中正确指定和链接核心模块(如$core$、$gui$、$widgets$)的配置方法分为以下两种情况: ### 一、CMake项目配置 1. **查找Qt6组件** 使用`find_package`明确指定所需模块,例如: ```cmake find_package(Qt6 COMPONENTS Core Gui Widgets REQUIRED) ``` 该指令会检查Qt6的$Core$、$Gui$、$Widgets$模块是否存在[^1]。 2. **链接模块到目标** 通过`target_link_libraries`将模块关联到可执行文件或库: ```cmake add_executable(my_app main.cpp) target_link_libraries(my_app PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets ) ``` CMake会自动处理Qt模块的依赖关系和路径[^3]。 --- ### 二、QMake项目配置 在`.pro`文件中直接声明模块: ```qmake QT += core gui widgets ``` 若需链接自定义库(如动态插件),通过`LIBS`添加路径: ```qmake LIBS += -L$$OUT_PWD/../myplugin -lmyplugin INCLUDEPATH += $$PWD/../myplugin ``` --- ### 三、常见问题与验证 1. **模块未找到错误** 检查是否安装完整Qt6开发包,或通过`CMAKE_PREFIX_PATH`指定Qt安装路径: ```bash cmake -DCMAKE_PREFIX_PATH=/path/to/Qt6/install .. ``` 2. **兼容性处理** 若需同时支持Qt5/Qt6,可动态判断版本: ```cmake find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui Widgets) ``` --- ### 四、示例代码片段 ```cmake # CMakeLists.txt 核心配置 cmake_minimum_required(VERSION 3.16) project(qt6_demo) set(CMAKE_CXX_STANDARD 17) find_package(Qt6 COMPONENTS Core Gui Widgets REQUIRED) add_executable(demo main.cpp) target_link_libraries(demo PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets ) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sanqima

一键三连,多多益善

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值