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

站长统计导航窗口网网站建设站建设

站长统计导航窗口,网网站建设站建设,今年最流行的装修风格,精通网站建设 100%全能建站密码pdf1、property 1.1 介绍 property用来自定义属性。 什么是属性?面向对象中,类由方法和属性构成。对于从C语言的过来人,更喜欢称之为变量。 之所以说“自定义”,是因为QML语言本身已有默认定义好的属性,这些属性不可以…

1、property

1.1 介绍

property用来自定义属性。
什么是属性?面向对象中,类由方法和属性构成。对于从C语言的过来人,更喜欢称之为变量。

之所以说“自定义”,是因为QML语言本身已有默认定义好的属性,这些属性不可以重新定义或者覆盖。比如id属性,每一种 QML 对象类型都只有一个id属性,用来被其他对象识别和引用。

1.2 定义

1)方法1
先在C++中使用Q_PROPERTY来定义属性,然后将这个类注册到QML系统中
2)方法2
在QML中直接定义,完整的定义格式如下

[default] [required] [readonly] property <propertyType> <propertyName>

属性名称必须以小写字母开头,并且只能包含字母、数字和下划线。

1.3 默认属性-default

什么是默认属性?给属性赋值时,不需要指定属性名称,直接将“值”赋值给包含属性的“类”。当然了,默认只能有一个,如果多了,“类”就不知道将“值”赋值给谁了。

例如,在一个对象声明中,如果“值”也是一个对象(子对象),并且没有显示的将一个子对象赋值给某个属性,则这个子对象会被赋值给默认属性。

1.4 必要属性-required

创建对象实例时必须设置使用required标记的属性。
如果可以静态检测到,违反此规则将导致 QML 应用程序无法启动。
如果是动态实例化的 QML 组件(例如通过Qt.createComponent()),违反此规则会导致警告和空返回值。

1.5 只读属性-readonly

只能在初始化时为只读属性分配一个值。只读属性初始化后,无论是通过命令性代码还是其他方式,都无法再为其赋予值。

注意:只读属性不能再设置为默认属性

1.6 内置信号

QML可以通过定义相应的“槽函数”来处理内置信号,定义时,有语法要求

on<Signal>

其中“Signal”是信号的名称,第一个字母大写。示例如下:

import QtQuick 2.0Item {width: 100; height: 100MouseArea {anchors.fill: parentonClicked: {console.log("Click!")}}
}

1.7 定义信号

自定义信号的语法如下:

signal <signalName>[([<type> <parameter name>[, ...]])]

示例如下:

import QtQuick 2.0Item {signal clickedsignal hovered()signal actionPerformed(string action, var actionResult)
}

1.8 连接信号和槽-Connections

使用Connections属性来连接信号和槽,在Connections中使用target来标记信号源,使用on“Signal”来处理信号

import QtQuick 2.15
import QtQuick.Controls 2.15Rectangle {id: rectwidth: 250; height: 250Button {id: buttonanchors.bottom: parent.bottomanchors.horizontalCenter: parent.horizontalCentertext: "Change color!"}Connections {target: buttonfunction onClicked() {rect.color = Qt.rgba(Math.random(), Math.random(), Math.random(), 1);}}
}

1.9 属性更改信号

当 QML 属性的值发生变化时,会自动发出信号,格式为:

on<Property>Changed

示例如下:

import QtQuick 2.15Rectangle {id: rectwidth: 100; height: 100TapHandler {onPressedChanged: console.log("taphandler pressed?", pressed)}
}

1.10 信号连接到信号

使用signal定义一个信号,使用connect将信号连接到这个信号

import QtQuick 2.15Rectangle {id: forwarderwidth: 100; height: 100signal send()onSend: console.log("Send clicked")TapHandler {id: mouseareaanchors.fill: parentonTapped: console.log("Mouse clicked")}Component.onCompleted: {mousearea.tapped.connect(send)}
}

1.11 信号连接到方法

信号对象可以使用connect()将信号连接到方法

import QtQuick 2.15Rectangle {id: relaysignal messageReceived(string person, string notice)Component.onCompleted: {relay.messageReceived.connect(sendToPost)relay.messageReceived("Tom", "Happy Birthday")}function sendToPost(person, notice) {console.log("Sending to post: " + person + ", " + notice)}
}
http://www.yayakq.cn/news/376968/

相关文章:

  • 宿州高端网站建设公司网站建设设计方案
  • 设计师对网站的意义招商网站建设运营
  • 公司网站注销保定市建设局安监网站
  • 网站建设去哪可接单好看的网页设计公司
  • 深圳响应式网站设计大学生创新创业平台
  • 微网站模板制作南昌专业做网站的
  • 外贸型网站建设wordpress主题失败
  • 医院网站建设的计划计算机前端开发要学哪些软件
  • 庄辉个人网站建设教学营销类网站有哪些
  • 建网站的公司深圳建设网站的网站江苏
  • 代做毕业设计找哪个网站网站 手机 app
  • 德化网站建设视频制作软件手机版
  • 广州公司制作网站wordpress模版改版
  • 哪些购物网站做的比较简洁有品质品牌建设10阶梯
  • 舆情分析网站仅仅建设银行网站打不开
  • 长春好的做网站公司小游戏开发平台
  • 潍坊路通工程建设有限公司网站wordpress网页访问权限设置
  • 网站开发需要学什么技能一个企业做网站需要什么资料
  • 网站建设规划书总结怎么写网站创建多少钱
  • 建设自有网站需要什么系统开发过程中最重要最关键的环节是
  • 建设一个电影网站怎么做查看网站外链
  • 厦门思明区建设局网站腾讯域名怎么做网站
  • 卡盟网站怎么做图片素材杭州 电子商务网站建设 网络服务
  • 做网站需要哪些费用支出教做幼儿菜谱菜的网站
  • 网站域名空间租用合同.net做网站之前设置
  • 未成年人做网站免费空间asp网站源码
  • 珠海市网站开发公司网站平台方案设计
  • 给帅哥做奴视频网站地址岳阳网站设计改版
  • 陕西省建设厅特种工报名网站diy网站建设源码
  • 如何自学编程昆明seo博客南网站建设