本文翻译自Qt官方文档:

http://doc.qt.io/qt-5/qmlapplications.html

QML 应用

QML是声明式语言,它使得用户界面以及交互行为可以被“描述”出来。这是一种可读性非常高、动态互联其中的构件的语言,并且它允许构件可以非常容易的被重用和界面自定义。使用QtQuick模块,设计者和开发者可以使用QML开发流畅的动画界面,也可以选择将用户界面与后端的C++库连接起来。

什么是QML?

QML是用户界面规范与编程语言。它使得开发者和设计者可以开发出高性能,流畅动画、美观的应用。QML提供高可读性,声明式的,语法类似 JSON 的、支持命令式的 JavaScript 表达式与动态属性绑定。

QML语言以及引擎架构由 Qt QML 模块提供。更多介绍参见 Qt QML 文档。

下面这些页面包含了更多QML说明:

  • 使用QML第一步 —— 通过这些实例程序来开始了解QML
  • 在 Qt Creator 中创建 Qt Quick 项目
  • QML 帮助文档 —— QML的结构和特性说明
  • QML 编码约定
  • QML 术语表

什么是 Qt Quick?

Qt Quick 是QML的类型和功能标准库。 它包含了虚类型,交互类型,动画,模型和视图,材质特效和阴影特效。一个QML应用开发者使用一句简单的语句即可使用所有这些功能。

Qt Quick QML库由 QtQuick 模块提供,Qt Quick 模块文档包含了更多关于QML类型和别的功能的描述。

QML用户界面

为了创建一个自定义的图形用户界面,除了QML标准类型意外,QtQuick 还从Qt QML中添加了类型、动画类型,以及其他QML类型。 Qt Quick Designer 集成在了 Qt Creator 中,它支持 QtQuick 2、QtCreator 2.7 。

  • QML中的虚类型
  • QML中响应用户输入
  • QML中的动画
  • 在QML中显示文本
  • QML中的布局处理器
  • 风格和主题支持
  • 在QML中集成 JavaScript
  • 缩放

按钮、菜单、以及其他控件

基本 UI 控件中, Qt Quick 控件模块实现了许多诸如按钮、菜单、视图。 这些控件会模仿不同平台(windows,mac,Linux)的原生风格。

  • Qt Quick 控件概览
  • 风格
  • 对话框
  • 布局
  • 其他

特效

一些Qt模块提供了创建特效的类型,详细信息参看:

  • 材质效果
  • 图形效果 —— 创建图片特效

在QML应用中浏览网页内容

QML类型:WebEngineView 和 WebView ,可以渲染并且显示动态网页内容。它俩之间唯一的不同就是:如果允许,那么WebView会使用原生的网页视效。这两种类型都可以加载URL和HTML字符串信息。更多示例程序和信息,参见 Qt WebEngine 和 Qt WebView。

传感器、收拾和触摸屏界面

Qt Sensors 模块允许程序读取来自传感器中的信息,比如加速器、倾斜测量仪。这些QML API 对于不同平台都提供了,并且可以使用C++来拓展。

  • Qt Sensors QML类型
  • Qt 传感器 示例程序
  • 通用地图 —— 列出了不同手机平台支持的级别。

多媒体内容

Qt Multimedia 模块使程序可以通过使用一个方便的QML类型集合来处理各种多媒体内容。这些QML类型也可以使用C++进行拓展。

  • 多媒体
  • 声音
  • 视屏
  • 摄像头
  • 广播
  • Qt Audio Engine —— 3D环绕声和内容管理

移动设备

一些Qt模块为网络和移动设备提供了 QML API 支持。 QML类型提供对蓝牙、短距离通信(NFC),和GPS的设备的支持。

  • Qt 定位
  • Qt 方位
  • Qt 蓝牙
  • Qt 短距离通信

更多参见:网络和连接、移动API页面。

代码示例和程序示例

更多QML代码,演示如何使用QML类型,另外,还有很多程序示例演示如何在应用程序中使用QML代码。

  • 从使用Qt Quick开始 —— 一个简单的QML编辑器教程
  • Qt Quick 示例和教程

高级应用开发部分

  • 发布QML程序
  • 性能表现的思考与建议
  • 国家化与区域
  • 测试与调试:
  • qmlscene 雏形
  • 调试QML程序
  • Qt Quick测试:QML单元测试框架

其他一些QML模块

Qt Quick 只提供了一些基本的虚类型,很多Qt的功能都通过别的模块暴露给了QML。如果你要用到这些功能,你需要参考他们的QML文档。

所有QML模块API 包含了Qt5中QML的模块列表。

相关话题

把QML应用移植到Qt5

Qt 5.7 > Qt Applications的更多相关文章

  1. Qt... configure: error: Qt (>= Qt 2.2.2) (headers…

    转载:http://blog.chinaunix.net/uid-23733724-id-290980.html     昨天开始在自己的fedora12下装qt~ 但是按照教程在/opt/Embed ...

  2. Qt环境搭建(Qt Creator)+Visual Studio

    1.http://www.cnblogs.com/ranjiewen/p/5318768.html 简述 经常有人问我编写Qt程序时使用什么IDE,其实这个真的很难回答(各有所长),只能说看个人爱好了 ...

  3. Qt Creator提示"Qt没有被正确安装,请运行make install"的解决办法

    笔者最近使用Qt在开发一些小程序,觉得这个框架设计确实很好,使用了信号和槽解决了组件之间的通讯问题,可以说是基于C++语言上一个非常大的创新,大大提高了开发人员的编码效率,也使整个C++语言更加抽象. ...

  4. Qt学习记录--Qt::CaseSensitive

    Qt::CaseSensitivity 为枚举类型, 可取值Qt::CaseSensitive 和 Qt::CaseInsensitive, 表示匹配的灵敏度. 比较字符串的时候 Qt::CaseSe ...

  5. qt widget设置Qt::FramelessWindowHint和Qt::WA_TranslucentBackground, 会出现一个bug: 在最小化后还原时界面停止刷新

    qt widget设置Qt::FramelessWindowHint和Qt::WA_TranslucentBackground, 会出现一个bug: 在最小化后还原时界面停止刷新 Widget wit ...

  6. 【Qt】关于Qt【转】

    什么是Qt Qt是一个针对桌面.嵌入式.移动设备的一个跨平台的应用程序开发框架,支持的平台包括Linux.OS X.Windows.VxWorks.QNX.Android.iOS.BlackBerry ...

  7. :: error: 无法打开文件“d:\Qt\2010.05\qt\lib\qtmaind.lib”

    新建一个工程马上编译也会出现这个错误:: error: 无法打开文件“d:\Qt\2010.05\qt\lib\qtmaind.lib” vc的编译器, 而你安装的是mingw版本的qt. 工具-选项 ...

  8. Qt on Android:让 Qt Widgets 和 Qt Quick 应用全屏显示

    Android 系统版本号非常多,较新的 4.4 ,较老的 2.3 ,都有人用. Qt on Android 开发的 Android 应用.默认在 Android 设备上是非全屏的. 而有些应用的需求 ...

  9. Qt入门学习——Qt 5 帮助文档的使用

    Qt入门学习——Qt 5 帮助文档的使用 学习图形界面开发,肯定离不开帮助文档的使用,因为它不像 C 语言那样就那么几个函数接口,图形接口的接口可以用海量来形容,常用的我们可能能记住,其它的真的没有必 ...

随机推荐

  1. 汇编条件判断整理(JCC,CMP/TEST的实现)

    比较的实现 我们知道CMP是比较两个寄存器内容的指令,但这是如何实现的? 当执行到CMP指令的时候会读取这两个寄存器的内容,并加以减法运算,结果本身不保留,并按照结果设置符号位(属算术运算). CMP ...

  2. LaTeX入门教程(二)

    LaTeX(LATEX,音译"拉泰赫")是一种基于ΤΕΧ的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在20世纪80年代初期开发,利用这种格式,即使使用 ...

  3. SASS使用CSS3动画并使动画暂停和停止在最后一帧的简单例子

    今天在手机上试了试这个 css3 动画效果,可以把动画效果停留在最后一帧上,以及鼠标 :hover 暂停动画,比较实用的功能,不用 JS 也能实现这些效果了. 不过测试体验感觉手机上没有 jQuery ...

  4. Andrew Ng机器学习入门——线性回归

    本人从2017年起,开始涉猎机器学习.作为入门,首先学习的是斯坦福大学Andrew Ng(吴恩达)教授的Coursera课程 2 单变量线性回归 线性回归属于监督学习(Supervise Learni ...

  5. 使用java连接MySql,中文乱码解决的方法

    排查MySql中文乱码的问题 1.在cmd中启动MySql. 打开命令提示符cmd,输入"mysql -uusername -ppassword",回车,就可以连接到数据库. 如输 ...

  6. >> 计算机的数据表示

    1. 采用二进制 2. 负数采用补码表示 3. 乘法处理 4. 浮点数

  7. 修改html 属性,css样式。

    一 通过修改标签属性来改变它的样式  js设置和获取标签的属性 <script type="text/javascript"> window.onload = func ...

  8. Redis安装(CentOS7/tar.gz)

    1. 将安装包redis-3.2.0.tar.gz上传到linux系统,位置随意. 2. 解压文件 .tar.gz 3. 解压后会在当前目录生成文件夹“redis-3.2.0”,将其拷贝到" ...

  9. Tomcat禁止外网访问

    Tomcat中某个应用禁止外网访问 Tomcat中有多个应用,由于权限需要,将某一个主机禁止外网访问.在config/server.xml中设置: <Host name="172.16 ...

  10. HDU 4403 A very hard Aoshu problem

    暴力$dfs$. 先看数据范围,字符串最长只有$15$,也就是说枚举每个字符后面是否放置“$+$”号的复杂度为${2^{15}}$. 每次枚举到一种情况,看哪些位置能放“$=$”号,每个位置都试一下, ...