当前位置: 首页 > news >正文

QT之QML

QML(Qt Meta-object Language)是一种描述性的脚本语言,文件格式以.qml结尾语法格式非常像CSS(参考后文具体例子),但又支持javascript形式的编程控制。QtDesigner可以设计出·ui界面文件,但是不支持和Qt原生C++代码的交互。QtScript可以和Qt原生代码进行交互,但是有一个缺点,如果要在脚本中创建一个继承于QObject的图形对象非常不方便,只能在Qt代码中创建图形对象,然后从QtScript中进行访问。而QML可以在脚本里创建图形对象,并且支持各种图形特效,以及状态机等,同时又能跟Qt写的C++代码进行方便的交互,使用起来非常方便。

来源

QML是Qt推出的Qt Quick技术的一部分,是一种新增的简便易学的语言。QML是一种陈述性语言,用来描述一个程序的用户界面:无论是什么样子,以及它如何表现。在QML,一个用户界面被指定为具有属性的对象树。 这使得Qt更加便于很少或没有编程经验的人使用。

QML实际上是Qt Quick (Qt4.7.0中的新特性)核心组件之一:Qt Quick是一组旨在帮助开发者创建在移动电话,媒体播放器,机顶盒和其他便携设备上使用越来越多的直观、现代、流畅UI的工具集合。

举例

JavaScript在QML中作为一种脚本语言,对QML进行逻辑方面的编程。例如:

Rectangle {

id: rect

color: "black"

// following italic type code is javascript

function fun() {

if(rect.color == "black") {

rect.color = "red"

}

else {

rect.color = "black"

}

}

.....

MouseArea {

id: mouse

onClicked: {

fun()

}

}

.....

}

上面斜体代码就是javascript,意思是,当方块颜色是黑色的时候点击就变红,反之变黑。你可能想先多了解一下JavaScript,然后再深入学习QML, 而对类似于HTML和CSS等网络技术有一些基本理解也是有用的。但它们都不是必需的。

参考:QML_百度百科

相关文章:

  • QNX是什么
  • QT中的pro变量解析
  • Qt编译debug和release版本--CONFIG(debug,debug|release)
  • QMake指南(Pro文件指南)
  • Qt常用命令和pro参数
  • Qt creator中项目的构建配置和运行设置的步骤
  • UTF-8中Bom和无 Bom区别
  • MSVC编译器介绍
  • QT解决MSVC中文乱码问题
  • qt中的toUtf8, toLatin1, Local8bit, toUcs4
  • C++队列queue用法详解
  • C++中,new/delete和malloc/free的区别
  • C++多线程讲解
  • 高速摄像机
  • Windows使用curl发送GET、POST请求
  • 【5+】跨webview多页面 触发事件(二)
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • android 一些 utils
  • Django 博客开发教程 16 - 统计文章阅读量
  • Hibernate最全面试题
  • JavaScript设计模式之工厂模式
  • Linux链接文件
  • MySQL主从复制读写分离及奇怪的问题
  • pdf文件如何在线转换为jpg图片
  • SQLServer插入数据
  • Theano - 导数
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • Web Storage相关
  • 大快搜索数据爬虫技术实例安装教学篇
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 力扣(LeetCode)22
  • 什么是Javascript函数节流?
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 微信小程序--------语音识别(前端自己也能玩)
  • 小李飞刀:SQL题目刷起来!
  • 怎么把视频里的音乐提取出来
  • ​io --- 处理流的核心工具​
  • #define与typedef区别
  • #Linux(Source Insight安装及工程建立)
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (论文阅读40-45)图像描述1
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (正则)提取页面里的img标签
  • (转)http-server应用
  • (转)使用VMware vSphere标准交换机设置网络连接
  • .htaccess配置常用技巧
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET MVC第三章、三种传值方式
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout