qml import 自定义模块 cmake

简介: qml import 自定义模块 cmake

在 CMake 项目中配置和使用自定义 QML 模块的详细步骤:

1. 创建自定义 QML 模块

  1. 创建模块目录:

在 Qt 项目中创建一个目录来存放自定义 QML 模块,例如 MyModule。

在该目录中创建一个 qmldir 文件和你自定义的 QML 文件。

MyModule/qmldir

module MyModule
MyComponent 1.0 MyComponent.qml

MyModule/MyComponent.qml

import QtQuick 2.15

Rectangle {
    width: 100
    height: 100
    color: "red"
}

2. 配置 CMake 文件

在 CMake 配置文件中指定 QML 模块路径:

告诉 CMake 和 Qt 你的自定义 QML 模块的位置。

CMakeLists.txt

cmake_minimum_required(VERSION 3.16)
project(MyQtApp)

find_package(Qt6 REQUIRED COMPONENTS Core Quick)

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

# Add your QML module directory to the QML import path
set(QML_IMPORT_PATH ${CMAKE_SOURCE_DIR}/MyModule)

# Define the executable
add_executable(MyQtApp
    main.cpp
    qml.qrc
)

# Link the Qt libraries
target_link_libraries(MyQtApp PRIVATE Qt6::Core Qt6::Quick)

# Set QML import path
target_compile_definitions(MyQtApp PRIVATE QML_IMPORT_PATH="${QML_IMPORT_PATH}")

# Specify QML and QRC files
qt_add_qml_module(MyQtApp
    URI MyModule
    VERSION 1.0
    QML_FILES
        MyModule/MyComponent.qml
)

这个 CMake 配置做了以下几件事:

使用 qt_add_qml_module 命令来配置 QML 文件和模块。

通过 target_compile_definitions 指定 QML 模块的导入路径。

3. 编写主程序和 QML 文件

编写主程序来加载 QML:

main.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;

    // Load QML file
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    return app.exec();
}

在主 QML 文件中使用自定义模块:

main.qml

import QtQuick 2.15
import MyModule 1.0

ApplicationWindow {
    visible: true
    width: 640
    height: 480

    MyComponent {
        anchors.centerIn: parent
    }
}


目录
相关文章
|
3月前
|
编解码 开发工具 UED
QT Widgets模块源码解析与实践
【9月更文挑战第20天】Qt Widgets 模块是 Qt 开发中至关重要的部分,提供了丰富的 GUI 组件,如按钮、文本框等,并支持布局管理、事件处理和窗口管理。这些组件基于信号与槽机制,实现灵活交互。通过对源码的解析及实践应用,可深入了解其类结构、布局管理和事件处理机制,掌握创建复杂 UI 界面的方法,提升开发效率和用户体验。
196 13
|
4月前
|
缓存 NoSQL Shell
Python 模块的加载顺序
Python 模块的加载顺序
19 0
|
5月前
|
Linux iOS开发 MacOS
CMake调用第三方库的两种方法
这两种方法都可以用来在 CMake 中调用第三方库,选择哪种方法取决于你的具体需求和第三方库的提供情况。
814 0
|
7月前
|
存储 缓存 Unix
CMake基础(8)包含第三方库
CMake基础(8)包含第三方库
58 1
|
7月前
|
架构师 Java 程序员
Python 模块与自定义模块
Python 模块与自定义模块
27 0
|
7月前
|
存储 JSON C++
Qt cmake 增加qml文件:深度剖析Qt cmake 的qt_add_qml_module函数
Qt cmake 增加qml文件:深度剖析Qt cmake 的qt_add_qml_module函数
295 0
|
7月前
|
数据可视化 算法 C++
C++ cmake工程引入qt6和Quick 教程
C++ cmake工程引入qt6和Quick 教程
471 0
|
7月前
|
算法 关系型数据库 编译器
[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目(一)
[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目
211 0
|
7月前
|
C++
[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目(二)
[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目
115 0
|
存储 Python
python--导入,模块的引用,包,__name__
python--导入,模块的引用,包,__name__