国产探花免费观看_亚洲丰满少妇自慰呻吟_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。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 株洲市| 济源市| 桂平市| 东丰县| 长乐市| 同心县| 蓝山县| 建昌县| 罗山县| 沧源| 东阿县| 永川市| 格尔木市| 乐亭县| 泗水县| 永州市| 葫芦岛市| 新乡县| 兴和县| 绥棱县| 朝阳县| 揭阳市| 准格尔旗| 永善县| 涟水县| 西吉县| 扶余县| 沾益县| 新营市| 威宁| 股票| 武冈市| 金乡县| 阿瓦提县| 密云县| 蓬安县| 辽阳市| 马关县| 武功县| 三都| 宜兰市|