前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Qt Quick开发(QML,CMake企业级实战项目)

Qt Quick开发(QML,CMake企业级实战项目)

原创
作者头像
奔跑企鹅907340320
发布2024-10-25 14:46:14
1460
发布2024-10-25 14:46:14

Qt Quick最早出现在Qt的4.7版本中,目标是在UI设计者与开发者之间搭建一个更高效合作平台,给开发者更好的UI开发体验。虽然几经易手,Qt在digia公司这些年的努力迭代更新下,Qt Quick终于迎来了成熟稳定的版本(这也是我愿意在最近的项目里转用它的原因)。

至于Qt Quick和老一套开发核心Qwidget的区别,其中最重点的就是提供了新的UI描述语言QML(Qt Meta-object Language,Qt元对象描述语言)。QML乍看起来有点像json,但是核心思想却是模仿web页面。没错,在QML文件中允许搭配Javascript代码,就可以辅助实现丰富的UI交互逻辑。

如果你以往习惯QWidget开发,那么Qt Quick真的非常值得上手试试。

 Qt Quick是一些新UI技术的集合,主要由3部分组成:Qt Creator IDE ( 包含 Qt Quick 设计器 )、QML语言、Qt库中的QtDeclarative模块(Qt4),QML是对JavaScript的一种扩展,利用一个声明性语法,使用QML元素指定每一个用户界面,这些元素组合在一起形成各种组件,Qt的QtDeclarative模块实现了QML语言和对它适用的元素之间的接口,该模块还提供了一个C++接口,可以用来在Qt/C++应用程序中加载QML文件并与之通信(QtDeclarative Module的作用就是将QML元素与以前的标准C++类相结合)

   Qt5图形引擎基于GPU,应用开发套件Qt Quick2(适用于触摸屏的UI开发),增加了对C++11支持,加强了对JavaScript和QML的支持,可以混合编程,Qt5是Qt4渐进而平缓的升级,与Qt4高度兼容

  Qt5下,QWidget系列从QtGui中被剥离出去,成为单独的QtWidget模块,随着Qt Quick2的引入,QtDeclarative也逐渐和QWidget系列脱离关系,在Qt5下的GUI编程,有两套不同的东西:QtWidget (使用BackingStore)、QtQuick (使用Scene Graph)

Qt Quick应用程序

移动设备的用户界面设计非常不同。它们相对于桌面应用程序更加简洁,只需要专注的做一件事情。动画效果是一个非常重要的部分,用户界面需要生动活泼。传统的Qt技术已经不适于这些市场了。Qt Quick将会解决这个问题。

Qt Quick 提供了一个类似HTML声明语言的环境应用程序作为你的用户界面前端(the front-end),在你的后端使用本地的c++代码。这样允许你在两端都游刃有余。比如:

import QtQuick 2.0

Rectangle {

width: 240; height: 1230

Rectangle {

width: 40; height: 40

anchors.centerIn: parent

color: '#FFBB33'

}

}

在使用 QML 进行界面开发时,我们的目标是创建一套流体界面,所谓流体界面指的是UI组件是动态变化的。举个例子,当界面上的组件需要变化时,如果视觉画布突然变化会导致用户的体验感比较差。而如果在状态的变化过程中,我们添加一些引导,把状态从初始慢慢变化到目标状态,让用户可以感受到这个变化的过程,那么用户的感官体验这一块就会大大提升了,而这也就是所谓的动态变化这里需要引出几个重要的概念:State(状态)、Transition(过度)、Animation(动画)State(状态):所有项目都有一个默认状态,用于定义对象和特性值的默认配置。可以通过向 states 属性添加状态项来定义新状态,以允许项在不同配置之间切换Transition(过度):发生状态更改时要应用的动画Animation(动画):随着时间的推移逐渐改变属性

Qt Quick 是 Qt 提供的一种高级用户界面技术。使用它可轻松地为移动和嵌入式设备创建流畅的用户界面。

在 Android 设备上, Qt Quick 应用默认使用 OpenGL ES ,渲染效率很高,你能够用它创建很炫很酷很迷人的界面。

Qt Quick 模块是开发 QML 应用的标准库,提供了使用 QML 创建用户界面所需的一切东西,包括可视化类型、交互类型、动画、模型与视图、粒子效果与着色效果等等。

Qt Quick 提供了两组 API :

QML API ,它提供了使用 QML 语言创建用户界面所需的 QML 类型。

C++ API ,供开发人员使用 C++ 扩展 QML 应用。

Qt Quick 包括下列主题:

可视化的 Canvas

用户输入

元素定位与布局

状态、过渡和动画

数据模型、视图和数据存储

粒子和图形特效

方便类型

要使用 Qt Quick ,必须知道如何使用 QML 语言来撰写 QML 应用。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档