QML笔记:QML基本概念及使用
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基本概念及使用相关推荐
- QML笔记-QML中SpriteSequence及Sprite的基本使用
目录 背景 基本概念 博主例子 源码打包下载 背景 最近在研究一个稍微复杂的QML官方例子,里面有个SpriteSequence及Sprite知识点,我从来没有用过,这次特意花时间提取了出来,方便以后 ...
- QML笔记-QML基本数据类型的使用
目录 基本概念 举个栗子 基本概念 这里的数据类型不仅仅有C++里面的int,String等, 还有个很有特点的类型var,这个又可以放数组,也可以放函数,也可以混着换,很少有趣. 举个栗子 程序运行 ...
- [QML开发笔记]-QML滑屏效果
[QML开发笔记]-QML滑屏效果 QML的SwipeView滑屏控件.PageIndicator翻页指示器控件的功能介绍和使用方法.同样的功能我通过QWidget也进行了实现,可以参考QWidget ...
- Qt 5.12学习笔记--QML性能策略
Qt 5.12学习笔记--QML性能策略 1 简介 2 时间因素 2 性能分析 3 JavaScript 部分 4 绑定 5 类型转换 6 解析属性 6 属性绑定 7 序列提示(Sequence ti ...
- [QML开发笔记]-QML绘制仪表盘
[QML开发笔记]-QML绘制仪表盘 使用QML绘制仪表盘,主要是因为使用QPainter绘制控件绘制习惯了,使用QML也要绘制一个试试.总体感觉,QML绘制起来还是挺方便的,QML自带的仪表盘控件功 ...
- QML笔记-使用connect界面数据交互(qml中Designer使用)
程序运行截图如下: 点击右边的sender 左边会接收到数据: 多次点击后: 这里关键是记录两点: 1. 是qml界面不同控件数据的传输 2. 使用设计器完成简单的qml控件设计 先来记录下qml中D ...
- QML笔记-4中方式运行qml文件
目录 使用QQmlApplicationEngine运行qml 使用qml工具运行 使用qmlScene工具运行qml文件 使用QtQuick Prototype运行qml文件 使用QQmlAppli ...
- Docker:学习笔记(1)——基础概念
Docker:学习笔记(1)--基础概念 Docker是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ...
- HTML/CSS学习笔记01【概念介绍、基本标签】
w3cschool菜鸟教程.CHM(腾讯微云):https://share.weiyun.com/c1FaX6ZD HTML/CSS学习笔记01[概念介绍.基本标签.表单标签][day01] HTML ...
最新文章
- 当有人看不起你时,要懂得反省自己
- 机器学习和计算机视觉相关的数学
- 宁波工商职业技术学院计算机分数线,浙江工商职业技术学院历年分数线 2021浙江工商职业技术学院录取分数线...
- sainsbury online order
- 全国计算机等级考试题库二级C操作题100套(第02套)
- python 错误信息是:sudo :apt-get:command not found
- LeetCode(221) Maximal Square
- 花店橱窗布置问题(FLOWER)
- 【error】vue-cli3 报Computed property “tableData” was assigned to but it has no setter.
- Java基础(四)线程快速了解
- wsdl 架构验证警告:来自命名空间_Let it go: DARTS 神经网络可微架构搜索 笔记
- matlab求解线性规划问题的实例代码,matlab 求解线性规划问题
- 手机备份True NAS(FreeNAS)+​FolderSync​爬坑
- 网络安全——风险评估
- win7修复计算机卡了,win7升级到win10后突然很卡的修复方法(图文)
- 全球与中国高效无气油漆喷涂机市场深度研究分析报告
- Matlab学习日记(5)二维曲线的绘制(plot与fplot)
- Windows服务器双网卡绑定的方法(HP/Broadcom网卡)
- 全球与中国佐替平市场深度分析及发展研究预测报告
- 机电系统计算机设计试题,机电一体化系统设计(试题和答案)