【QT】Windows环境下,cmake引入QT/QML

本文介绍了如何在Qt5.7环境中设置QT库、QML和QML资源文件的环境变量,包括cmake配置步骤,以及如何在C++项目中引入和测试QML。

这里使用的QT库为5.7版本。


目录

一、添加环境变量

1、QT 库环境变量

2、QML环境变量

二、引入QML

1、qrc 文件配置

2、cmake 配置

(1) cmake引入QT库

(2) 添加 qrc 资源文件

(3) 目标文件链接到 QT库

3、测试用例

三、引入QT

1、cmake配置

2、测试用例


一、添加环境变量

1、QT 库环境变量

QT库根目录环境变量 QTDIR

QT库平台插件环境变量 QT_PLUGIN_PATH

QT库动态库环境变量,bin目录下包含了QT程序运行所需的dll文件,添加到环境变量 Path

2、QML环境变量

除了上述环境变量外,QML还需要额外添加环境支持

 QML支持环境变量 QML2_IMPORT_PATH (该环境变量仅在需要使用QML时添加)

二、引入QML

1、qrc 文件配置

新建一个 .qrc 文件,这里命名为 qml.qrc,.qrc是一个Qt资源文件,用于将QML文件、图片等资源打包到一个二进制文件中。

<RCC>
    <!-- prefix 定义了资源的访问路径 -->
    <qresource prefix="/">
        <file>qml/main.qml</file>        <!-- main.qml 文件在qml目录下 -->
        <file>image.png</file>           <!-- image.png在 .qrc 文件同级目录下 -->
    </qresource>
</RCC>

后续访问 main.qml 文件的路径格式为:

qrc:<prefix><file>

qrc:/qml/main.qml

2、cmake 配置

(1) cmake引入QT库

find_package(Qt5 COMPONENTS REQUIRED
    Gui
    Quick
    Qml
    Core
    Widgets
)
if(Qt5_FOUND)
    message(STATUS "Qt5 is found")
    set(CMAKE_INCLUDE_CURRENT_DIR ON)
    set(CMAKE_AUTOUIC ON)       # 自动编译 .ui 文件
    set(CMAKE_AUTORCC ON)       # 自动编译 .qrc 文件
    set(CMAKE_AUTOMOC ON)       # 自动编译包含宏 Q_OBJECT 的文件
endif()

(2) 添加 qrc 资源文件

file(GLOB ALL_SOURCES *.c *.cpp)
file(GLOB ALL_INCLUDES *.h *.hpp)
set(ALL_SRCS 
    ${ALL_SOURCES} 
    ${ALL_INCLUDES}
    qml.qrc         # qml.qrc是一个Qt资源文件,用于将QML文件、图片等资源打包到一个二进制文件中
)   

add_executable(${PROJECT_NAME} ${ALL_SRCS})

(3) 目标文件链接到 QT库

target_link_libraries(${PROJECT_NAME}
    Qt5::Gui
    Qt5::Quick
    Qt5::Qml
    Qt5::Core
    Qt5::Widgets
)

3、测试用例

#include <QtWidgets/QApplication>
#include <QtQml/QQmlApplicationEngine>

int main(int argc, char** argv)
{
    QApplication app(argc, argv);
	QQmlApplicationEngine engine;

	// 显示QML文件
	engine.load(QUrl(QStringLiteral("qrc:/qml/main.qml")));	// qrc: + <prefix> + <file>
	if (engine.rootObjects().isEmpty())
        return -1;

    return app.exec();
}

三、引入QT

1、cmake配置

QT 引入的步骤可以参考 QML,QT引入不需要 qrc 文件

cmake_minimum_required(VERSION 3.15.0)
project(QTTest)

set(QT_ROOT_PATH "C:/Users/GZX/Desktop/qt5_7_lib_shared_64")
# 添加库的检索路径
list(APPEND CMAKE_PREFIX_PATH ${QT_ROOT_PATH})
find_package(Qt5 COMPONENTS
    Gui
    Core
    Widgets
)
# 添加头文件路径
include_directories(${QT_ROOT_PATH}/include)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)       # 自动编译.ui文件
set(CMAKE_AUTORCC ON)       # 自动编译.qrc文件
set(CMAKE_AUTOMOC ON)       # 自动编译包含宏Q_OBJECT的文件

add_executable(${PROJECT_NAME} qtTest.cpp)
target_link_libraries(${PROJECT_NAME}
    Qt5::Core
    Qt5::Widgets
    Qt5::Gui
)

2、测试用例

#include <QtWidgets/QLabel>
#include <QtWidgets/QApplication>

int main(int argc, char** argv)
{
    QApplication app(argc, argv);
 	QLabel *label = new QLabel("Hello Qt!");
 	label->show();
	app.exec();
    return 0;
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值