QML文档定义对象
来源:互联网 发布:演技 知乎 编辑:程序博客网 时间:2024/06/06 13:10
通过QML文档定义对象类型
将一个QML文档放置到一个以<TypeName>.qml命名的文本文件中,这里<TypeName>是类型的名称,必须以大写字母开头,这个文档会自动被引擎识别为一个QML类型的定义。//引擎解析QML类型名称时候,需要搜索相同的目录,所以这种方式定义的类型,同一目录中的其他QML文件会被自动设置为可用的。
如2个QML文件,下
//SquareButton.qmlimport QtQuick 2.2Rectangle{ width:100;height:100;color:"red"; MouseArea{ anchors.fill:parent onClicked:console.log("Button clicked"); }}
由于文件名称是SquareButton.qml,因此可以被同一目录下的其他QML文件作为SqureButton类型使用。如
//myapplication.qmlimport QtQuick 2.2SquareButton{}
当myapplication.qml文档被引擎加载时,它会将SquareButton.qml作为一个组件进行加载,并对其实例化来创建一个SquareButton对象。QML引擎从这个类型实例出一个SquareButton对象。
自定义类型访问特性
如SquareButton.qml文件的根对象类型是Rectangle,这意味着在Rectangle类型中定义的所有的属性都可以被SquareButton对象修改。
自定义属性、方法、信号
//SquareButton.qmlimport QtQuick 2.2Rectangle{ id:root; property bool pressed:mouseArea.pressed; signal buttonClicked(real xPos , real yPos); function randomizeColor(){ root.color= Qt.rgba(Math.random(),Math.random(),Math.random(),1); } width:100;height:100;color:"red"; MouseArea{ anchors.fill:parent onClicked:console.log("Button clicked"); }}
所有的SquareButton都可以使用上面定义的pressd属性、buttonClicked信号、randomizeColor()方法。
如:
import QtQuick 2.0SquareButton{ id:squareButton; onButtonClicked:{ console.log("Clicked",xPos,yPos); randomizeColor() } Text { text:squareButton.pressed?"Down":"Up"; }}
SquareButton.qml中定义的任何一个id值都不能在SquareButton对象中进行访问。因为id只能在组件作用域中进行访问。
阅读全文
0 0
- QML文档定义对象
- QML学习文档
- QML学习文档
- Quick3D 学习文档 (QML)
- QML学习文档
- QML学习文档
- QML学习文档
- QML学习文档
- QML学习文档
- QML 中的 console 对象
- QML 中的 XMLHttpRequest 对象
- QML属性和对象
- QML中定义私有变量
- QML学习文档(1)
- Qt QML 入门 — 使用C++定义QML类型
- QML学习:对象和属性
- 通过JavaScript创建Qml对象
- Qml关于注册c++对象
- Hello world
- MySQL小误区:关于set global sql_slave_skip_counter=N 命令的一些点
- 调整SortingOrder解决UGUI中粒子层级问题
- easyui-combobox选中下拉框无法显示值
- 《驾驭大数据》 Bill Franks
- QML文档定义对象
- C语言操作大于2G的文件
- 欧拉函数与欧拉函数的递推总结+例题POJ2478
- Linux 基础入门
- sql 盲注之正则表达式攻击
- vector二维数组使用
- python数据持久存储:pickle模块的基本使用
- Python多线程
- 第一张数字货币银行卡问世:线上线下直接刷卡消费,手续费全免,还能贷款