QML笔记:QML基本概念及使用

  • Qt5中的Qt Qml和Qt Quick架构

  • Qt Qml模块本身并没有涉及图形显示,所有的图形处理都由Qt Quick模块完成。
  • Qt Quick 以QPA(Qt Platform Abstraction)为基础,之上经过了Qt Gui、Open GL和Scene Graph这3层封装。

示例

  • demo1.pro: 项目文件.这个就是普通的Qt项目文件,其中指定程序使用的模块、源文件、资源文件等
  • main.cpp:        其中包含了 main() 函数,用于加载QML文件
  • qml.qrc:           资源文件,所有的QML文件、图片等都作为资源放在资源文件中
  • main.cpp
#include <QGuiApplication>
#include <QQmlApplicationEngine>int main(int argc, char *argv[])
{QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);QGuiApplication app(argc, argv);QQmlApplicationEngine engine;const QUrl url(QStringLiteral("qrc:/main.qml"));QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,&app, [url](QObject *obj, const QUrl &objUrl) {if (!obj && url == objUrl)QCoreApplication::exit(-1);}, Qt::QueuedConnection);engine.load(url);return app.exec();
}
  • 主函数实现的主要功能就是加载QMlL文件,这里使用了QQmlApplicationEngine对象来加载QML文件。

    • 这个类提供了一种简易的方式,将一个QML文件加载到正在运行的程序中。
    • 因为项目自动生成的所有QML文件被放到资源文件中,所以这里需要使用 qrc:/ 前缀从资源文件中进行加载

创建 Qt Quick UI项目

  • 有些时候可能只想测试QML相关内容,希望可以快速显示界面效果,这时可以创建 Qt Quick Ul项目。
  • Qt QuickUl项目中只包含QML和JavaScript代码,没有添加任何C++代码。
  • 选择“文件一新建文件或项目”菜单项,模板选择其他项目分类中的Qt Quick UI Prototype

  • 代码:

  • demo2.qmlproject
/* File generated by Qt Creator */import QmlProject 1.1Project {mainFile: "demo2.qml"/* Include .qml, .js, and image files from current directory and subdirectories */QmlFiles {directory: "."}JavaScriptFiles {directory: "."}ImageFiles {directory: "."}/* List of plugin directories passed to QML runtime */// importPaths: [ "../exampleplugin" ]
}
  • 这个demo2.qmlproject是项目文件,其中包含了项目配置信息

    • 主要指定了项目中所用的QML文件、JavaScript文件和图片文件所在的目录(默认为当前目录)。
    • 指定以后,在代码中就可以直接使用该目录中的文件,不用再列出具体的路径
  • 按左下角运行按钮(或者使用Ctrl+R快捷键),程序会立即运行并显示界面。
  • 查看下面的编译输出窗口和应用程序输出窗口,可以看到,项目并没有编译,而只是启动了qmlscene.exe工具。

  • 在程序运行时并没有编译的过程,单独的QML文件并不需要进行编译就能够直接在qmlscene中进行预览。
  • 在Qt Quick2中,QML文件的预览工具是QMLScene,使用它可以在开发应用时直接加载QML文件进行预览和测试,也可以在“工具→外部→QtQuick”中运行该工具。

Qt Quick 程序的发布

  • 需要使用release方式编译程序,然后将生成的.exe可执行文件和需要的库文件放在一起打包进行发布。
windeploygt  -qmldir release目录  目标文件目录

QML笔记:QML基本概念及使用相关推荐

  1. QML笔记-QML中SpriteSequence及Sprite的基本使用

    目录 背景 基本概念 博主例子 源码打包下载 背景 最近在研究一个稍微复杂的QML官方例子,里面有个SpriteSequence及Sprite知识点,我从来没有用过,这次特意花时间提取了出来,方便以后 ...

  2. QML笔记-QML基本数据类型的使用

    目录 基本概念 举个栗子 基本概念 这里的数据类型不仅仅有C++里面的int,String等, 还有个很有特点的类型var,这个又可以放数组,也可以放函数,也可以混着换,很少有趣. 举个栗子 程序运行 ...

  3. [QML开发笔记]-QML滑屏效果

    [QML开发笔记]-QML滑屏效果 QML的SwipeView滑屏控件.PageIndicator翻页指示器控件的功能介绍和使用方法.同样的功能我通过QWidget也进行了实现,可以参考QWidget ...

  4. Qt 5.12学习笔记--QML性能策略

    Qt 5.12学习笔记--QML性能策略 1 简介 2 时间因素 2 性能分析 3 JavaScript 部分 4 绑定 5 类型转换 6 解析属性 6 属性绑定 7 序列提示(Sequence ti ...

  5. [QML开发笔记]-QML绘制仪表盘

    [QML开发笔记]-QML绘制仪表盘 使用QML绘制仪表盘,主要是因为使用QPainter绘制控件绘制习惯了,使用QML也要绘制一个试试.总体感觉,QML绘制起来还是挺方便的,QML自带的仪表盘控件功 ...

  6. QML笔记-使用connect界面数据交互(qml中Designer使用)

    程序运行截图如下: 点击右边的sender 左边会接收到数据: 多次点击后: 这里关键是记录两点: 1. 是qml界面不同控件数据的传输 2. 使用设计器完成简单的qml控件设计 先来记录下qml中D ...

  7. QML笔记-4中方式运行qml文件

    目录 使用QQmlApplicationEngine运行qml 使用qml工具运行 使用qmlScene工具运行qml文件 使用QtQuick Prototype运行qml文件 使用QQmlAppli ...

  8. Docker:学习笔记(1)——基础概念

    Docker:学习笔记(1)--基础概念 Docker是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ...

  9. HTML/CSS学习笔记01【概念介绍、基本标签】

    w3cschool菜鸟教程.CHM(腾讯微云):https://share.weiyun.com/c1FaX6ZD HTML/CSS学习笔记01[概念介绍.基本标签.表单标签][day01] HTML ...

最新文章

  1. 当有人看不起你时,要懂得反省自己
  2. 机器学习和计算机视觉相关的数学
  3. 宁波工商职业技术学院计算机分数线,浙江工商职业技术学院历年分数线 2021浙江工商职业技术学院录取分数线...
  4. sainsbury online order
  5. 全国计算机等级考试题库二级C操作题100套(第02套)
  6. python 错误信息是:sudo :apt-get:command not found
  7. LeetCode(221) Maximal Square
  8. 花店橱窗布置问题(FLOWER)
  9. 【error】vue-cli3 报Computed property “tableData” was assigned to but it has no setter.
  10. Java基础(四)线程快速了解
  11. wsdl 架构验证警告:来自命名空间_Let it go: DARTS 神经网络可微架构搜索 笔记
  12. matlab求解线性规划问题的实例代码,matlab 求解线性规划问题
  13. 手机备份True NAS(FreeNAS)+​FolderSync​爬坑
  14. 网络安全——风险评估
  15. win7修复计算机卡了,win7升级到win10后突然很卡的修复方法(图文)
  16. 全球与中国高效无气油漆喷涂机市场深度研究分析报告
  17. Matlab学习日记(5)二维曲线的绘制(plot与fplot)
  18. Windows服务器双网卡绑定的方法(HP/Broadcom网卡)
  19. 全球与中国佐替平市场深度分析及发展研究预测报告
  20. 机电系统计算机设计试题,机电一体化系统设计(试题和答案)

热门文章

  1. 纪宁罗峰鸿蒙秦羽,你们说楚阳霍雨浩唐三萧炎林动姬动纪宁罗峰秦羽龙皓晨打起来谁赢...
  2. 光伏电站发电量上网电量售电量远程无线数据采集方案
  3. vmware中的linux使用共享文件夹
  4. 解悟人生三境界(转)
  5. Deeplabcut教程(二)使用
  6. 回车符、换行符和回车换行符
  7. Android Studio 开发手表软件没有SDK22这个选项 Ticwatch Ticwear
  8. 核酸提取干货 - MedChemExpress
  9. 半导体始祖Fairchild,第一个万亿美元初创企业的传奇
  10. 什么情况下需要做大气校正之探讨