国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

QML靜態值與屬性綁定

2019-11-06 06:22:24
字體:
來源:轉載
供稿:網友

簡述

QML 對象中的屬性分配兩種類型的值 靜態值和綁定表達式,后者也稱為屬性綁定。

靜態值:一個不依賴于其他屬性的常數值。 綁定表達式:一個用于描述屬性間依賴關系的 javaScript 表達式。

靜態值

所謂靜態值,就是一個不依賴于其他屬性的常數值。例如:width : 100,其中 100 就是一個靜態值。

下面的示例,將 Rectangle 的 width 和 height 均分配為靜態值。

import QtQuick 2.0Rectangle { // 初始化賦值 - 靜態值 width: 200 height: 200 Rectangle { // 初始化賦值 - 靜態值 width: 100 height: 100 color: "blue" }}

屬性綁定

要創建一個屬性綁定,需要為屬性分配一個 Javascript 表達式,該表達式將計算所需的值。 屬性綁定幾種形式

// 訪問對象屬性width: parent.width / 2// 使用內置的 JavaScript 對象 Mathwidth: Math.min(parent.width, parent.height)// 使用三目運算符width: parent.width > 100 ? parent.width : parent.width /2// if-else 代碼塊中的 return 關鍵字可有可無width: { if (parent.width > 100) return parent.width else return parent.width / 2}// 調用js方法height: someMethodThatReturnsWidth()

屬性綁定移除

具有綁定的屬性將根據需要自動更新,但是,如果稍后從 JavaScript 語句為該屬性重新分配一個靜態值,則將會移除綁定。

例如,下面的藍色 Rectangle 最初確保其 width 總是其 parent 的 width 的 1/4。但是,當按下空格鍵時,parent.width / 2 將作為靜態值賦值給 width。隨后,即使其 parent 的 width 發生變化,其 width 也將保持不變,因為靜態值的分配移除了綁定。

import QtQuick 2.0Rectangle { width: 200 height: 200 Rectangle { id: rect width: parent.width / 4 //屬性綁定 height: 50 color: "blue" focus: true Keys.onSpacePRessed: { width = parent.width / 2 //屬性綁定移除 } }}

屬性綁定 Qt.binding()

如果目的是為了給藍色 Rectangle 一個固定的 width 并停止自動更新,那么這沒有任何問題。但是,如果是為了給 width 和其 parent 的 width 建立一個新的關系,那么新的綁定表達式必須被包裹在 Qt.binding() 函數中:

Keys.onSpacePressed: { width = Qt.binding(function() { parent.width / 2 })//屬性綁定}

現在,按下空格鍵后,矩形的高度將繼續自動更新,始終為其 parent 的 width 的 1/2。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 晋江市| 安福县| 南京市| 昌吉市| 陈巴尔虎旗| 红河县| 乐陵市| 商城县| 南雄市| 巴林右旗| 浦东新区| 高淳县| 进贤县| 钟祥市| 乌鲁木齐县| 西乡县| 隆安县| 黎城县| 炉霍县| 清远市| 九寨沟县| 静宁县| 涡阳县| 南昌县| 全椒县| 山阳县| 涿州市| 定州市| 夏津县| 巴东县| 东莞市| 灯塔市| 马鞍山市| 克什克腾旗| 福鼎市| 洞头县| 星座| 上饶县| 庆云县| 汉寿县| 永清县|