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

qt笔记之纯qml项目详解

qt笔记之纯qml项目详解

code review!

文章目录

  • qt笔记之纯qml项目详解
    • 一.`.qmlproject`项目文件和`.pro`项目文件
      • 1.1.纯qml项目一:使用`.pro`文件
        • 1.1.1.目录结构
        • 1.1.2.main.qml
        • 1.1.3.qmldir
        • 1.1.4.MyQmlApp.pro
        • 1.1.5.assets.qrc
        • 1.1.6.使用说明
      • 1.2.纯qml项目二:使用`.qmlproject`文件
        • 1.2.1.目录结构
        • 1.2.2.创建 `main.qml`
        • 1.2.3.创建 `MyQmlProject.qmlproject`
        • 1.2.4.使用 Qt Creator 打开项目
        • 1.2.5.运行项目
      • 1.3.`.qmlproject` 和 `.pro` 文件的区别
    • 二.直接编译与运行(也称为预览)`qml`文件
      • 使用场景
      • 编译和预览纯 QML 文件
      • 注意事项
    • 三.Qt Designer 可以打开.ui文件或.qml文件吗?

一..qmlproject项目文件和.pro项目文件

1.1.纯qml项目一:使用.pro文件

1.1.1.目录结构
MyQmlApp/
├── main.qml
├── assets/
│   └── images/
├── qmldir
└── MyQmlApp.pro
1.1.2.main.qml
import QtQuick 2.15
import QtQuick.Window 2.15Window {visible: truewidth: 640height: 480title: "My QML App"Rectangle {width: 200height: 200color: "lightblue"anchors.centerIn: parentText {text: "Hello, QML!"anchors.centerIn: parent}}
}
1.1.3.qmldir

如果使用自定义模块,可以在这个文件中指定模块路径。但对于简单项目,这个文件可以是空的。

# Leave empty or define custom modules
1.1.4.MyQmlApp.pro
TEMPLATE = app
QT += qml quickSOURCES +=RESOURCES += \assets.qrc
1.1.5.assets.qrc

如果有资源文件(如图片),可以在这里列出:

<RCC><qresource prefix="/"><file>images/example.png</file></qresource>
</RCC>
1.1.6.使用说明
  1. 加载项目:在 Qt Creator 中打开 MyQmlApp.pro 文件。
  2. 运行项目:点击“运行”按钮即可启动应用程序。
  3. 预览 QML 文件:可以使用 qmlscene main.qmlqml main.qml 进行快速预览。

1.2.纯qml项目二:使用.qmlproject文件

1.2.1.目录结构

首先,创建项目目录结构:

MyQmlProject/
│
├── main.qml
└── MyQmlProject.qmlproject
1.2.2.创建 main.qml

main.qml 中编写一个简单的 QML 应用,例如:

import QtQuick 2.15
import QtQuick.Controls 2.15ApplicationWindow {visible: truewidth: 640height: 480title: "My QML Project"Rectangle {anchors.fill: parentcolor: "lightblue"Text {anchors.centerIn: parenttext: "Hello, QML!"font.pointSize: 24}}
}
1.2.3.创建 MyQmlProject.qmlproject

这是项目的核心文件,用于指定项目的 QML 资源:

Project {// 包含的 QML 文件files: ["main.qml"]// 可指定资源目录// directories: [//     "resources"// ]
}
1.2.4.使用 Qt Creator 打开项目
  1. 打开 Qt Creator。
  2. 选择“打开文件或项目”。
  3. 导航到 MyQmlProject 目录并选择 MyQmlProject.qmlproject 文件。
  4. 项目加载后,可以在 Qt Creator 中编辑和运行项目。
1.2.5.运行项目

点击“运行”按钮,Qt Creator 将会启动应用程序,并显示一个窗口,上面写着“Hello, QML!”。

1.3..qmlproject.pro 文件的区别

  • .qmlproject 文件:

    • 专门用于 QML 项目。
    • 适合纯 QML 和 JavaScript 项目。
    • 不涉及 C++ 编译或链接。
    • 使用简单的 JSON 风格语法。
    • 如果项目主要是 QML 和 JavaScript,使用 .qmlproject 是最方便的。
  • .pro 文件:

    • 用于 Qt 的 C++ 项目。
    • 包含编译和链接参数。
    • 支持更复杂的项目配置,例如资源文件、库依赖等。
    • 使用 qmake 工具生成 Makefile。
    • 如果项目需要 C++ 代码,或者是混合项目,可能需要 .pro 文件进行更复杂的配置。

二.直接编译与运行(也称为预览)qml文件

在 Qt 中,确实可以创建纯 QML 项目。纯 QML 项目主要用于构建基于 QML 的 UI,而无需 C++ 代码。这种项目通常适合于简单的应用程序或快速原型设计。

使用场景

  1. 快速原型设计

    • 利用 QML 的声明式语法快速设计和测试 UI。
    • 适用于需要快速迭代和验证用户界面的项目。
  2. 简单应用程序

    • 不需要复杂逻辑的应用程序可以完全用 QML 实现。
    • 适合于展示内容、动画效果或其他简单交互的应用。
  3. 嵌入式设备

    • 在资源受限的设备上,QML 的轻量特性非常适用。
    • 通过 QML 实现高效的 UI 渲染。

编译和预览纯 QML 文件

  1. 使用 Qt Creator

    • 创建项目

      1. 打开 Qt Creator。
      2. 选择“新建项目”。
      3. 选择“Qt Quick 应用程序”。
      4. 在向导中选择“无 C++ 支持”选项,创建一个纯 QML 项目。
    • 预览 QML 文件

      1. 打开 QML 文件。
      2. 点击“设计”视图,可以看到实时设计预览。
      3. 使用“快速预览”(Ctrl + R 或 Command + R)在内置的 QML 预览器中运行。
  2. 使用命令行工具

    • qmlscene

      • 用于快速预览 QML 文件。
      • 命令:qmlscene yourfile.qml,直接在窗口中预览。
    • qml

      • Qt 6 中推荐使用的工具。
      • 命令:qml yourfile.qml,功能类似于 qmlscene

注意事项

  • 纯 QML 项目虽然简单易用,但在需要复杂逻辑或与系统交互时,可能需要结合 C++。
  • 在大型项目中,通常使用 QML 结合 C++ 以实现更复杂的功能和性能优化。

通过这些工具和方法,可以高效地开发和测试纯 QML 项目。

三.Qt Designer 可以打开.ui文件或.qml文件吗?

Qt Designer 可以打开 .ui 文件。这些文件是为 Qt Widgets 应用程序设计的用户界面文件,使用 XML 格式。

然而,Qt Designer 不支持直接打开 .qml 文件。.qml 文件是用于 Qt Quick 应用程序的用户界面文件,通常使用 Qt Creator 来编辑和设计。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ant design pro 如何去保存颜色
  • Python 轻量级 Web 应用框架 Flask
  • 练习题 - 探索命名空间和作用域
  • 调试和优化大型深度学习模型 - 5 启动训练命令
  • 8.16-ansible的应用
  • 【区块链+金融服务】基于区块链的供应链金融系统 | FISCO BCOS应用案例
  • 主机ssh连接不上vmware的虚拟机
  • Java算法题——二分查找法
  • MemFire Cloud是否真的可以取代后端
  • 【QT】基于UDP/TCP/串口 的Ymodom通讯协议客户端
  • Token 设计
  • SpringBoot响应式编程(2)WebFlux入门
  • 文心快码(Baidu Comate)快速创建数据可视化图表
  • CSS的:host伪类:精确定位于Web组件的指南
  • 00_remipi_软件评估记录
  • 4个实用的微服务测试策略
  • centos安装java运行环境jdk+tomcat
  • Flannel解读
  • HTTP--网络协议分层,http历史(二)
  • If…else
  • javascript数组去重/查找/插入/删除
  • maven工程打包jar以及java jar命令的classpath使用
  • node和express搭建代理服务器(源码)
  • PHP的Ev教程三(Periodic watcher)
  • Spark学习笔记之相关记录
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • web标准化(下)
  • 机器学习学习笔记一
  • 理清楚Vue的结构
  • 区块链分支循环
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 深度学习在携程攻略社区的应用
  • 为什么要用IPython/Jupyter?
  • 小程序测试方案初探
  • # 数仓建模:如何构建主题宽表模型?
  • #70结构体案例1(导师,学生,成绩)
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • ${factoryList }后面有空格不影响
  • (13):Silverlight 2 数据与通信之WebRequest
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (C11) 泛型表达式
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (c语言+数据结构链表)项目:贪吃蛇
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (二)c52学习之旅-简单了解单片机
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (十一)c52学习之旅-动态数码管
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)树状数组
  • ***详解账号泄露:全球约1亿用户已泄露
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • *算法训练(leetcode)第三十九天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离