在Qt 4中,Qt Quick只是在QGraphicsView之上做了简单的封装,并通过QtScript和JavaScript来为其提供脚本支持。基于QGraphicsView之上的QML在功能上仅仅限于那些绝对必要且速度可以足够快的绘制美观用户界面的部分。对于那些潜在影响绘制速度的高级功能,比如组合模式、QPainterPaths、QGraphicsEffects和复杂的画笔等都不被支持的。
(图1)Qt4中的Qt Quick架构
QT5中,QML和Qt Quick完全分离,两者对于QT而言相当于一个新语言和全新的类型库,架构图如下:
(图2)Qt5中的Qt Quick架构
Qt Qml 模块本身并没有涉及图形显示,所有图形处理都由Qt Quick模块完成Qt Quick以QPA为基础,之上经过了Qt Gui、OpenGL、和 SceneGraph这三层封装。
一、Qt Quick项目
按照类型的不同可以分为: Qt Quick UI项目、Qt Quick Application项目
(一)Qt Quick UI项目
Qt Quick UI项目中只包含QML和JavaScript代码,没有添加任何C++代码,对于QML文件,无需编译就可以直接在预览工具中预览效果;不仅如此,在没有安装开发环境的系统中也可以创建运行该类项目。
在选择QT版本时对应的哪些组建:
Qt Quick Controls 1.1: 创建 Qt Quick 2 UI 项目, 要求Qt5.2及以上版本
Qt Quick Controls 1.0: 创建 Qt Quick 2 UI 项目, 要求Qt5.1及以上版本
Qt Quick 2.2:创建Qt Quick2 UI 项目, 要求Qt5.2及以上版本
Qt Quick 2.1:创建Qt Quick2 UI 项目, 要求Qt5.1及以上版本
Qt Quick 1.1:创建Qt Quick1 UI 项目, 要求Qt4.8及以上版本
用Qt Quick模块的相应组件时,会自动生成一个普通的主视图界面。创建完毕可以使用QML Scene 直接预览Qt Quick 2UI 项目,不需要进行构建,也不需要在系统上搭建额外的开发环境。
创建成功后有两个文件如下:
项目文件主要指定了项目中所用的qml文件、JavaScript文件和图片文件所在的目录(默认目录为当前目录,即项目目录)
在程序运行时并没有编译的过程,单独的QML文件并不需要进行编译,就能够直接在qmlscene中进行预览,在Qt Quick2 中,QML文件的预览工具是QML Scene, 使用它可以在开发应用时直接加载QML文件进行预览和测试,也可以在“工具 -> 外部 -> Qt Quick”中运行工具
二、Qt Quick Application项目
在之前的QT开发中,传统的开发qt应用程序的项目的前端,以及数据逻辑的后端都是使用c++开发的,但是现在软件开发,对前端变化需求日益高涨,这与传统相违背,所以为了前端的快速更迭,最好的方式将前后端分离,使用Qt Quick完成。
这种Qt Quick应用程序可以同时包含QML 和C++代码。程序中包含了一个QQuickView用于显示前端,可以将Qt Quick应用项目部署到桌面或者移动平台;
项目文件介绍:
1、.pro:项目文件。这是普通的QT项目文件,指定程序使用的模块、源文件、资源文件等
2、.pri :这是项目文件的补充,需要包含在项目文件中。类似include的头文件,这个文件指出了编译到不同平台时的特殊设置。因为这些设置仅与项目的部署相关,所以不需要全部添加到项目文件中,而单独列出
3、main.cpp:其中包含了main()函数,用于加载QML文件
4、.qrc:资源文件,所有的QML文件、图片等都作为资源放在资源文件中。qml 文件也是资源文件的一部分
加载QML文件是在main.cpp中实现的如下:
#include <QGuiApplication>
#include <QQmlApplicationEngine>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}
这里使用的QQmlApplicationEngine类来加载QML文件。这个类主要提供一个简易的方式,将一个QML文件加载到正在运行的程序中。
QT Quick项目简介相关推荐
- QT实现Three.js将Qt Quick项目用作纹理
QT实现Three.js将Qt Quick项目用作纹理 项目简介 项目技术 项目展示 主要源码片段解析 获取完整项目源码传送门 项目简介 如何使用Three.js将Qt Quick项目用作纹理. 演示 ...
- Qt Creator调试Qt Quick项目
Qt Creator调试Qt Quick项目 调试Qt Quick项目 设置QML调试 混合C ++ / QML调试 启动QML调试 调试JavaScript函数 设置断点 检查项目 检查用户界面 执 ...
- Qt Creator创建Qt Quick项目
Qt Creator创建Qt Quick项目 Qt Creator创建Qt Quick项目 创建Qt Quick应用程序 创建基于Qt Quick的Python应用程序 创建Qt Quick UI项目 ...
- Qt Quick 3D简介
Qt Quick 3D简介 前言 Qt Quick 3D是Qt自带的一套3D图形系统,与传统的Qt 3D不同的是,Qt Quick 3D采用QML来进行开发.本节则对Qt Quick 3D进行一次简单 ...
- Qt Quick使用简介
此文章主要是为了自己记录一下从头开始如何使用Qt Quick方式来编写桌面应用软件,有需要的人可以参考借鉴一下. 一.工程的创建 1.打开qt creater软件新建项目选择Qt Quick Appl ...
- 第一课:QT Quick项目架构说明
目录 1.开发环境 2.工程结构 2.1 myqml.pro文件 2.2 C++头文件 2.3 C++源文件 2.4 资源文件
- Qt Quick测试
Qt Quick测试 Qt Quick测试 简介 使用模块 QML API C ++ API 用CMake构建 用qmake构建 运行测试 在QML测试之前执行C ++ Qt Quick测试 简介 Q ...
- 如何创建Qt quick应用程序
Qt(发音为" cute",而不是" cu-tee")是一个跨平台框架,通常用作图形工具包,它不仅创建CLI应用程序中也非常有用.而且它也可以在三种主要的台式机 ...
- 【五一创作】Qt quick基础1(包含基本元素Text Image Rectangle的使用)
Qt quick基础1(包含基本元素Text Image Rectangle的使用) 目录 Qt quick基础1(包含基本元素Text Image Rectangle的使用) 前言 qt中有直接设计 ...
最新文章
- elk,logstash -elastcisearch 429
- bugku——web 做题记录
- mysql php加速_mysql存储过程加速 - mysql数据库栏目 - 自学php
- 航旅事业群面试(li)
- 硬盘数据恢复入门教程
- hbase major_compact 文件会变小吗_图解式学习:可能是最易懂的Hbase架构原理解析(二)...
- 《101 Windows Phone 7 Apps》读书笔记-TODO LIST
- Android6.0之AMS启动
- c语言12 345 6789,c语言知识点
- 计算机交换机作用,交换机的作用与功能
- android 删除垃圾文件夹,别再用手机管家清理垃圾了!删除这些文件夹,内存瞬间释放几个G...
- 论文学习——洪水预报实时校正技术研究进展
- 国网项目汇总(ECP)
- 编译原理(哈工大)绪论
- 蓝桥杯嵌入式(G4系列):RTC时钟
- You can't take the sky from me
- IDMPhotoBrowser 图片管理器
- Cypress 本身启动过程的调试
- 客户最佳实践 | All in企业微信,苏州吴中维多利亚美容医院让每位员工成为“美丽管家”!
- 学生专用计算机如何打游戏,学生党电脑差怎么办?推荐几款低配的联机游戏,渣机也畅玩!...
热门文章
- 用硅光电池测量白炽灯频闪
- Day 16 购物车
- AutoSAR配置视频讲解:新建DaVinci工程
- 2017年4月蓝桥杯模拟题
- 应用金数据在线订单功能 为中小企业带来真正价值
- 【分布式】分布式环境下如何保证数据库和缓存的双写一致性?看完我明白了!!
- html输入页码跳转,WordPress分页导航添加输入页码跳转功能
- 微信小程序详细图文教程-10分钟完成微信小程序开发部署发布(3元获取腾讯云服务器带小程序支持系统)...
- 铁甲雄心机器人冠军_机器人格斗元老亮相《铁甲雄心》虽败犹荣
- 游戏3D建模师职业生涯规划,年薪百万学习路线