一、为什么不用 Qt Creator,而选择 VSCode

博主废了一番功夫来配置环境,为什么不用Qt Creator?光能用ai这一条,足以支持我使用VSCode了。

二、开发环境组成

VSCode + CMake Tools + MSVC 2022 + Ninja + Qt 6 msvc2022_64

配置(路径是你自己的):

Qt: D:/downloadedge/qt/qtdownload/6.10.2/msvc2022_64  ----使用你的qt msvc路径
Compiler: Visual Studio 2022 MSVC cl.exe
Generator: Ninja
Build Type: Debug
Ninja: C:/ninja/ninja.exe  ----MinGW 的 g++.exe 去编译 MSVC 版 Qt,很容易出现链接失败、找不到库、ABI 不匹配等问题。

注意下载:

Visual Studio Community

Visual Studio 里安装 “使用 C++ 的桌面开发”

三、核心

直接贴cmakelist.txt

cmake_minimum_required(VERSION 3.16)

project(QML_TEST4 VERSION 0.1 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD_REQUIRED ON) // 表示 Qt 的 .qrc 资源文件可以自动参与构建
set(CMAKE_AUTORCC ON)

find_package(Qt6 6.8 REQUIRED COMPONENTS Quick) // 项目需要 Qt6,并且使用 Qt Quick 模块。QML 界面主要依赖 Qt Quick。

qt_standard_project_setup(REQUIRES 6.8) // Qt 6 推荐的 CMake 项目初始化方式

// 可执行程序
qt_add_executable(appQML_TEST4
    src/main.cpp
    include/core/test.h
    src/core/test.cpp

    include/app/AppController.h
    src/app/AppController.cpp

    include/app/PetManager.h
    src/app/PetManager.cpp

    include/app/SettingsService.h
    src/app/SettingsService.cpp

    resources/resources.qrc
)
// 这一步定义了最终生成的 exe 名字:appQML_TEST4.exe 在build下

// QML 文件是怎么被 CMake 管起来的
qt_add_qml_module(appQML_TEST4
    URI QML_TEST4
    VERSION 1.0
    QML_FILES
        qml/Main.qml
        qml/menu/MainMenuPopup.qml
        qml/AppRoot.qml
        qml/pet/PetWindow.qml
        qml/pet/PetSprite.qml
        qml/components/PetContextMenu.qml
        qml/components/EUIButton.qml
        qml/components/GlassCard.qml
)
// 在c++入口这样打开
engine.loadFromModule("QML_TEST4", "AppRoot"); // AppRoot是你的main

资源文件加载:

在resource.qrc里面

<RCC>
    <qresource prefix="/">
        <file>icon/eat/1.png</file>
        <file>icon/idle/1.png</file>
        ...
    </qresource>
</RCC>

在QML可以这样访问

qrc:/icon/idle/1.png
qrc:/icon/eat/1.png

VSCode 的 C++ 智能提示配置:

.vscode/c_cpp_properties.json(部分):

{
    "name": "Win32",
    "includePath": [
        "${workspaceFolder}/**",
        "D:/downloadedge/qt/qtdownload/6.10.2/msvc2022_64/include/**"
    ],
    "compilerPath": "cl.exe",
    "cppStandard": "c++17",
    "intelliSenseMode": "windows-msvc-x64",
    "configurationProvider": "ms-vscode.cmake-tools" // 最重要 C++ 插件的 IntelliSense 配置交给 CMake Tools 提供
}

VSCode 是调试 Qt 程序:

.vscode/launch.json(部分):

{
    "name": "(Windows) 启动",
    "type": "cppvsdbg", // 表示使用 Visual Studio 的 Windows C++ 调试器,也就是 MSVC 调试器。
    "request": "launch",
    "program": "${command:cmake.launchTargetPath}", // 表示不要手写 exe 路径,而是让 CMake Tools 自动告诉 VSCode 当前构建目标在哪里
    "cwd": "${workspaceFolder}",
    "environment": [
        {
            "name": "PATH",
            "value": "D:/downloadedge/qt/qtdownload/6.10.2/msvc2022_64/bin;${env:PATH}" // Qt 程序能启动的关键,改成你自己的路径
        },
        {
            "name": "QT_ASSUME_STDERR_HAS_CONSOLE",
            "value": "1"
        }
    ],
    "console": "internalConsole"
}

四、总结

博主把自己觉得最关键的部分贴了出来,如有疑问,可以留言,博主会仔细看自己的配置,争取把细节都展现出来。

更多推荐