当前位置: 首页 > article >正文

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
    }
}

http://www.kler.cn/a/280656.html

相关文章:

  • 科技温柔拥抱梦乡!康姿百德柔压磁性枕舒适与科技的甜蜜邂逅
  • 身份实名认证-身份证实名认证-身份证实名-实名认证-身份证二要素-身份证实名认证-身份实名认证-身份证号码实名认证核验校验接口
  • C\C++ Sqlite3使用详解
  • 极速文件预览!轻松部署 kkFileView 于 Docker 中!
  • CSS中的元素布局与定位详细说明
  • 一 初识爬虫
  • 国产游戏行业的挑战与机遇:技术创新引领未来
  • 监控摄像头和电脑监控软件如何选择?它们有什么区别吗?保姆式详细解析,你不容错过!
  • Unity3D UI Toolkit数据动态绑定详解
  • Windows电脑本地安装跨平台文生音乐AI应用MusicGPT详细教程
  • 04. 循环结构
  • 【Python机器学习】NLP分词——利用分词器构建词汇表(一)
  • 回归预测 | Matlab实现BES-ESN秃鹰搜索算法优化回声状态网络多输入单输出回归预测
  • 学生管理系统升级(登录注册 + 关联学生管理系统)
  • 一文带你深度了解FreeRTOS信号量——二值信号量
  • Android开发语言Kotlin简介
  • 走进 “星星的孩子” 的世界:理解与关爱儿童自闭症
  • Tomcat的基本使用
  • 井盖丢失隐患大?智慧井盖监管系统帮你解决
  • ARM 寻址方式(18)