文章目录

  • 前言
  • 一、QML 是什么?
  • 二、Qt Quick 又是什么?
  • 三、简单代码示例
  • 四、察看QML视图效果
  • 总结

前言

  QML 早已经不限于开发手机应用,也可以支持用户开发传统的桌面程序。Qt5 将 QML 脚本编程提到与传统 C++ 部件编程相同的高度,开始力推 QML 界面编程。
  使用 QML 开发界面主要有以下几个优点:
    1) QML 非常灵活,可以做出非常炫酷的效果,例如 QQ、360、迅雷等都不在话下。

    2) QML 是标记语言,见名知意,非常容易编写和阅读,大大提高了开发和维护效率。

    3) QML 界面简洁大气,有很多动画,适合移动端。

    4) 不同平台下的 QML 使用相同的渲染机制,界面效果一致,不会随操作系统的不同而变化。


一、QML 是什么?

  • QML是一种描述性的脚本编程语言 (什么东西长什么样子,可以干啥)

    文件格式以.qml结尾。语法格式类似于JSON的语法
    QML可以在脚本里创建图形对象,并且支持各种图形特效,以及状态机等

  • QML是一个用户接口规范

    支持与JavaScript表达式相结合来达到动态属性的绑定。
    支持JavaScript文件的导入,并使用这些导入的功能。
    支持与Qt写的C++代码进行方便的交互,使用起来非常方便。

二、Qt Quick 又是什么?

   Qt Quick是QML类型与功能标准库。它包括可视化类型,交互类型,动画。模型和视图。粒子效果和着色效果。
   Qt Quick之于QML,正如Qt 之于 C++,QML是Qt中开发的一个新的语言,而Qt Quick是这个语言的一个组件库,其中包含了很多用QML语言写的可以现成使用的组件。

三、简单代码示例

下面的代码使用JavaScript,实现了当方块颜色是黑色的时候点击就变红,反之变黑。

代码如下(示例):

来自百度百科——QML

import QtQuick 2.15Rectangle { id: rect color: "black"MouseArea {id: mouse anchors.fill:parentonClicked: {fun();}}// javascript代码function fun() { if(rect.color == "#000000") { rect.color = "red" }else {rect.color = "black" }}
}

四、察看QML视图效果

  要查看创建的内容,可以使用qmlscene工具(位于bin目录中),并以文件名作为第一个参数。 QML的基本学习可以用记事本来编写代码,并用qmlscene工具来察看效果,不必启用qcreator。

例如,在控制台输入:

qmlscene my.qml

]


总结

QML 只能用来进行界面设计和人机交互,也就是只能胜任 UI 部分,在底层仍然需要调用 C++ 编写的组件来完善功能 。

QML(1): 什么是QML相关推荐

  1. QML 编程之旅 -- QML程序的基本结构概念

    文章目录 QML 文档的构成 QML基本语法 QML 编程之旅 – QML程序的基本结构概念 学习Qt编程快近一年了,的确是项目驱动,让我不得不咬紧牙关,需要快速的学习掌握一门新的技术.编程是一个非常 ...

  2. QML官方系列教程——QML Applications

    附网址:http://qt-project.org/doc/qt-5/qmlapplications.html 假设你对Qt的官方demo感兴趣,能够參考本博客的另一个系列Qt5官方demo解析集 每 ...

  3. QML学习笔记-对QML基本认识

    首先是QML与Qt Quick的关系: 这就相当于C++与Qt的关系: 只是一个语言和框架的关系 从Qt 5.1开始,Qt Quick引入了一组界面控件,使用这些控件可以更简单地创建传统桌面应用.这些 ...

  4. QML学习系列-Qt QML是什么?

    Qt QML是一个用于创建用户界面(UI)和应用程序逻辑的声明性语言.它是Qt框架的一部分,用于开发跨平台的应用程序,可运行于Windows.MacOS.Linux.Android.iOS等平台上. ...

  5. qml 自定义消息框_Qt qml 自定义消息提示框

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/a844651990/article/d ...

  6. QML笔记-JavaScript在QML中的使用(直接调用和间接调用)

    目录 基本概念 代码与实例 基本概念 ECMA-Script ES5 1. ECMA-Script ES5适用于编写QML应用程序. 2. 这个与在浏览器里面额JavaScript不同. 3. 没有提 ...

  7. C++与QML交互(信号与槽通知QML,C++注册QML,QML结点映射C++类)

    运行截图如下: 源码如下: data.h #ifndef DATA_H #define DATA_H#include <QObject>class Data : public QObjec ...

  8. Qt文档阅读笔记-C++与QML混合编程(QML画饼状图)【通过信号与槽交互】

    这里只点名一点: Qt Charts是利用Qt的图形视图框架(QGraphics)搞出来的,底层并不是用OPenGL,而QML却与OPenGL的底层紧密关联 运行截图如下: 源码如下: widget. ...

  9. Qt工作笔记-第一个QML(QQuickView显示QML文件)

    程序运行截图如下: 程序结构如下: 代码如下: main.cpp #include <QApplication> #include <QDir> #include <QQ ...

  10. c++ qml 数组_【QML与C++混合编程】用QVariantList传递数组类型成员

    2017.5.8 更新:Record类要用指针,QObject 不能有拷贝函数. 我有一个C++中自定义的ReaderModel,继承自QAbstractListModel类,传递给了QML. 它的m ...

最新文章

  1. sqlserver 新建只读权限用户
  2. 二叉树的链式存储结构--二叉链表
  3. python—多线程之数据混乱问题
  4. Redis:07---Redis数据结构
  5. python爬虫动态解析js_Python爬虫实战入门五:获取JS动态内容—爬取今日头条
  6. 高颜值免费在线SCI绘图工具支持导出PPT格式图片和图片分享功能
  7. Quartz框架调用Demo
  8. java 报表 存储过程_快逸报表数据集类型采用存储过程介绍
  9. 原生js获取html根元素,JS获取屏幕高度的简单实现代码
  10. 国际短信平台哪家好?
  11. 免费的18个开源快速建站Java CMS
  12. python中np是什么意思_了解python中np是做什么的
  13. C语言题目:5-6 购物(一) (25 分)
  14. 【人工智能】2.博弈问题、博弈搜索策略
  15. Phoenix重磅 | Phoenix核心功能原理及应用场景介绍
  16. {转}tbl语言简介
  17. 图神经网络-图与图学习笔记-1
  18. 魔兽世界中的英文简写
  19. P1873 砍树(二分答案)
  20. 回归算法-线性回归分析-正规方程和梯度下降

热门文章

  1. 札记__quick 2.2.5To3.2
  2. Mac 中将脚本封装为 App
  3. 中国九大港口指标数据合集(2005-2019年)
  4. 工业路由器下的智慧园林监测解决方案
  5. ERROR:function cannot execute on a QE slice/Greenplum 错误解决
  6. 股票助手-您的理财好帮手
  7. BISTU-(1)-4-17-2016
  8. linux脚本获取日期格式,关于shell脚本中的bash:yyyy-mm-dd格式日期
  9. 【好文鉴赏】初创公司到底值不值得去?从以下几点考虑
  10. BT(二)A2DP、AVRCP