QML-基本类型

12 篇文章 0 订阅

QML支持许多基本类型。

基本类型就是引用单一值的类型,例如int、string。这与QML对象类型相对----引用了属性、信号、函数等的复合对象(参考class和int的区别)。与对象类型不同,基本类型不能用于声明QML对象,例如不能声明int{}或者size{}对象。

基本类型可被用于:

单个值(如,int一个简单的数字,var一个简单的列表)

一对简单属性值的值(如,size具有的width和height)

 

支持的基本类型

QML引擎默认支持一部分基本类型,这部分类型不需要import引入其他模块就能使用。其他的一些类型则需要导入提供它们的模块。

下列所有的基本类型都能在QML文件中用作属性类型,除了这几种情况:

list必须与QML对象类型一起使用。

枚举无法直接使用,因为枚举必须由已注册的QML对象类型定义。

QML提供的基本类型

下列是QML语言本身支持的基本类型:

bool                    值为true/false

double                浮点数,双精度存储

enumeration       命名为枚举的值

int                       整数,如0,10,-20

list                       QML对象列表

real                      浮点数

string                   自由格式文本字符串

url                        资源路径

var                       通用的属性类型

 

QML模块提供的基本类型

QML模块也会提供一些基本的类型来拓展QML语言,如,QtQuick模块提供的基本类型如下所示,

date                    日期

point                   具有x, y定位值

rect                     具有x, y,width, height

size                     具有width, height

 

Qt 全局对象为这些基本类型提供了一些便捷的函数。

目前,只有Qt本身的QML模块可以提供它们的基本类型。这点,在Qt-QML以后的版本说可能会改变。为了使用这些特定QML模块的基本类型,用户必须在QML文件中导入这些模块。

 

基本类型的属性改变行为(Behanvior)

有些基本类型具有属性(property),例如,font有pixelSize,family 和 bold属性。与对象类型的属性不同,基本类型的属性不提供自己属性的更改信号。只能为基本类型属性本身创建一个属性改变信号。如,

Text{  // invalid  onFont.pixelSizeChanged: doSomething()    // also invalid  font {    onPixelSizeChanged: doSomething()  }  // but this is ok  onFontChanged: doSomething()}

但是,你要知道,当基本类型的任何属性发生变化以及属性本身发生变化时,都会发出属性改变信号。以下面代码为例:

Text{  onFontChanged: console.log("font changed")  Text{id: otherText}  focus: true  // changing any of the font attributes, or reassigning the property  // to a different font value, will invoke the onFontChanged handler    Keys.onDigit1Pressed: font.pixelSize += 1  Keys.onDigit2Pressed: font.b = !font.b  Keys.onDigit3Pressed: font = otherText.font}

相反,对象类型的属性仅在属性被重设到不同的对象值时会发出它们自己的属性更改信号,并调用属性更改信号处理程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值