91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么需要將QML的屬性導(dǎo)出呢

工程師鄧生 ? 來源:嵌入式小生 ? 作者:iriczhao ? 2022-09-14 09:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

為什么需要將屬性導(dǎo)出

在進(jìn)行QML應(yīng)用開發(fā)時,很多時候都是以組件的形式規(guī)劃軟件的,然而一個組件又由許多子元素組成和描述。當(dāng)我們需要從一個組件引用另一個組件的屬性時,這時候就需要將被引用組件的屬性導(dǎo)出。例如:當(dāng)一個組件是由數(shù)據(jù)驅(qū)動的,那么就必須將被數(shù)據(jù)驅(qū)動的屬性導(dǎo)出,供其他組件引用使用和修改。

屬性導(dǎo)出

將一個組件的屬性導(dǎo)出,有兩種形式:

(1)自定義屬性。

(2)屬性別名。

為一個組件類型自定義屬性,其語法格式為:

【readonly】property 【:

property是固定寫法。

:表示屬性的類型。目前支持的屬性類型可以是QML基本類型(bool、double、int、list、real、string、url);可以是QML對象類型;也可以使用var指定的泛型類型。

:表示屬性名稱。屬性名稱必須以小寫字母開頭,且只能包含字母、數(shù)字和下劃線

:表示屬性值,可以是靜態(tài)值或?qū)⑵浣壎ǖ絼討B(tài)表達(dá)式。

自定義的屬性默認(rèn)有一個屬性值改變信號,我們可以使用onChanged信號處理程序來接收該信號,例如下列代碼:

propertyaliaslabel:labelText.text
propertycolortint:"blue"
onLabelChanged:console.log("aliasLabelChanged")
onTintChanged:console.log("tintChanged")

上述代碼中,onLabelChanged信號處理程序用于接收label的改變信號;onTintChanged用于接收Tint的改變信號。

為一個組件定義一個屬性別名,寫法如下所示:

[default]propertyalias:

property alias是標(biāo)準(zhǔn)寫法,不能更改。

:是導(dǎo)出屬性的別名。其他組件則通過該名稱引用到對應(yīng)的屬性。

:指別名引用。

聲明屬性別名與普通的屬性定義類似,只是它需要alias關(guān)鍵字而不是屬性類型,并且屬性聲明的右側(cè)必須是一個有效的別名引用。

例如:

propertyaliasbutton:item.button

上述代碼中,別名則是指item組件實(shí)例中的按鈕組件實(shí)例。

在 Qt Design Studio和QtCreate設(shè)計(jì)模式中,我們可以使用Navigator中的(Export)按鈕將組件導(dǎo)出為具有有效別名引用的屬性名:

01748538-33c8-11ed-ba43-dac502259ad0.png

注:導(dǎo)出的屬性可以在『Connections』視圖下的Properties中查看。

注:在其他文件代碼中使用的組件必須導(dǎo)出為屬性。

注:在QtCreator設(shè)計(jì)模式下導(dǎo)出組件屬性的方法與Qt Design Studio是一樣的。

一個實(shí)例

看一個具體實(shí)例,下面代碼是自定義的一個按鈕(Button):

importQtQuick2.0

Item{
id:container

propertyaliaslabel:labelText.text

propertycolortint:"blue"
signalclicked

width:labelText.width+70;height:labelText.height+18

BorderImage{
anchors{fill:container;leftMargin:-6;topMargin:-6;rightMargin:-8;bottomMargin:-8}
source:'images/box-shadow.png'
border.left:10;border.top:10;border.right:10;border.bottom:10
}

Image{anchors.fill:parent;source:"images/cardboard.png";antialiasing:true}

Rectangle{
anchors.fill:container;color:container.tint;visible:container.tint!=""
opacity:0.25
}

Text{id:labelText;font.pixelSize:15;anchors.centerIn:parent}

MouseArea{
anchors{fill:parent;leftMargin:-20;topMargin:-20;rightMargin:-20;bottomMargin:-20}
onClicked:container.clicked()
}
}

上述代碼中,自定義按鈕的height、width參數(shù)由labelText標(biāo)簽文本來確定,然后創(chuàng)建一個Rectangle用于顯示按鈕顏色,創(chuàng)建MouseArea用于接收鼠標(biāo)的點(diǎn)擊事件,并定義了一個clicked信號:

signalclicked

在MouseArea類型的點(diǎn)擊事件處理程序中發(fā)出該信號:

MouseArea{
anchors{fill:parent;leftMargin:-20;topMargin:-20;rightMargin:-20;bottomMargin:-20}
onClicked:container.clicked()
}

使用Image類型導(dǎo)入一張圖片,作為按鈕的背景:

Image{anchors.fill:parent;source:"images/cardboard.png";antialiasing:true}

因?yàn)榘粹o的文本和顏色需要被其他組件類型控制(即,在其他組件的屬性綁定或邏輯處理中需要改變按鈕的文本和顏色值),所以添加了一個顏色屬性(用于表示按鈕的顏色)和label別名(引用labelText元素的text屬性):

//label別名
propertyaliaslabel:labelText.text

//顏色屬性
propertycolortint:"blue"

通過上述代碼,將屬性導(dǎo)出后,在其他組件類型中則可通過label和tint訪問按鈕組件內(nèi)的屬性。

在設(shè)計(jì)中,有效的別名引用有以下幾個特性(以上述例子中代碼為例):

(1)只能指向聲明了屬性別名的組件中的組件實(shí)例或?qū)傩浴?/p>

(2)不能包含JavaScript表達(dá)式。例如下列寫法是錯誤的:

propertyaliaslabel:console.log("clicked")

(3)除了聲明屬性別名的組件外,不能指向其他類型的組件。

(4)不能指向附加的屬性。

在別名引用的寫法格式上,別名引用必須指定為:, ...。

以下幾種寫法都是錯誤的:

propertyaliaslabel:myName
propertystringmyName:"iriczhao"

上述代碼位置交換一下也是錯誤的。下列從根元素(container為根元素的id)引用的寫法也是錯誤的:

propertystringmyName:"iriczhao"
propertyaliaslabel:container.myName

(5)不能引用深度超過3層的嵌套屬性。例如下列錯誤的用法:

//該屬性引用將不能正常工作
propertyaliascolor:myItem.myRect.border.color

Item{
id:myItem
propertyRectanglemyRect
}



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:qml屬性導(dǎo)出

文章出處:【微信號:嵌入式小生,微信公眾號:嵌入式小生】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    LM555QML定時器:功能特性、應(yīng)用及設(shè)計(jì)要點(diǎn)

    LM555QML定時器:功能特性、應(yīng)用及設(shè)計(jì)要點(diǎn) 在電子設(shè)計(jì)領(lǐng)域,定時器是一種常用的器件,可用于生成精確的時間延遲或振蕩。TI公司的LM555QML定時器就是這樣一款高度穩(wěn)定的器件,下面我們來詳細(xì)
    的頭像 發(fā)表于 02-10 15:40 ?224次閱讀

    德州儀器LM117QML/LM117QML - SP可調(diào)穩(wěn)壓器深度解析

    德州儀器LM117QML/LM117QML - SP可調(diào)穩(wěn)壓器深度解析 在電子工程領(lǐng)域,穩(wěn)壓器是電源設(shè)計(jì)中不可或缺的組件,它能夠?yàn)殡娐诽峁┓€(wěn)定的電壓輸出,確保系統(tǒng)的正常運(yùn)行。德州儀器(TI
    的頭像 發(fā)表于 02-06 11:30 ?286次閱讀

    深入剖析 LM136-5.0QML 與 LM136A-5.0QML:高精度 5.0V 參考二極管的理想之選

    深入剖析 LM136-5.0QML 與 LM136A-5.0QML:高精度 5.0V 參考二極管的理想之選 在電子工程師的日常設(shè)計(jì)中,高精度、穩(wěn)定的電壓參考源是許多電路不可或缺的關(guān)鍵組件。今天,我們
    的頭像 發(fā)表于 02-06 11:00 ?335次閱讀

    高速精密運(yùn)算放大器LM118QML:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    高速精密運(yùn)算放大器LM118QML:特性、應(yīng)用與設(shè)計(jì)要點(diǎn) 在電子工程師的日常設(shè)計(jì)工作中,運(yùn)算放大器是不可或缺的基礎(chǔ)元件。而對于那些對帶寬和轉(zhuǎn)換速率有較高要求的應(yīng)用場景,選擇一款合適的高速運(yùn)算放大器
    的頭像 發(fā)表于 02-06 09:55 ?258次閱讀

    LM111QML電壓比較器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)解析

    、應(yīng)用場景以及在設(shè)計(jì)過程中需要注意的要點(diǎn)。 文件下載: lm111qml.pdf 一、LM111QML的特性亮點(diǎn) 1. 低輸入電流 LM111QML的輸入電流極低,在整個溫度范圍內(nèi)最大
    的頭像 發(fā)表于 02-06 09:30 ?386次閱讀

    深入解析LM2941QML與LM2941QML - SP:1A低壓差可調(diào)穩(wěn)壓器的卓越之選

    深入解析LM2941QML與LM2941QML - SP:1A低壓差可調(diào)穩(wěn)壓器的卓越之選 在電子工程師的日常設(shè)計(jì)工作中,穩(wěn)壓器是不可或缺的重要組件。今天,我們將深入探討德州儀器(TI
    的頭像 發(fā)表于 02-05 17:15 ?625次閱讀

    LM2941QML與LM2941QML - SP:1A低壓差可調(diào)穩(wěn)壓器詳解

    LM2941QML與LM2941QML - SP:1A低壓差可調(diào)穩(wěn)壓器詳解 在電子設(shè)計(jì)領(lǐng)域,穩(wěn)壓器是不可或缺的組件,它能為電路提供穩(wěn)定的電壓,保證電子設(shè)備的正常運(yùn)行。今天我們就來詳細(xì)探討德州儀器
    的頭像 發(fā)表于 02-05 17:15 ?657次閱讀

    探索LP2953QML與LP2953QML - SP:可調(diào)微功耗低壓差穩(wěn)壓器的卓越之選

    探索LP2953QML與LP2953QML - SP:可調(diào)微功耗低壓差穩(wěn)壓器的卓越之選 在電子設(shè)備的設(shè)計(jì)領(lǐng)域,電源管理始終是一個關(guān)鍵環(huán)節(jié),穩(wěn)壓器的性能直接影響著整個系統(tǒng)的穩(wěn)定性和效率。今天,我們就來
    的頭像 發(fā)表于 02-05 16:25 ?388次閱讀

    深入剖析LM6172QML:從特性到應(yīng)用的全面解讀

    深入剖析LM6172QML:從特性到應(yīng)用的全面解讀 在電子工程師的日常工作中,選擇合適的放大器是設(shè)計(jì)成功的關(guān)鍵之一。今天,我們要深入了解一款高性能的放大器——LM6172QML,探討它的特性、應(yīng)用以
    的頭像 發(fā)表于 02-05 16:20 ?345次閱讀

    解析LM2940QML與LM2940QML - SP:1A低壓差穩(wěn)壓器的卓越之選

    解析LM2940QML與LM2940QML - SP:1A低壓差穩(wěn)壓器的卓越之選 在電子設(shè)備的設(shè)計(jì)中,電源管理是至關(guān)重要的一環(huán)。穩(wěn)壓器作為電源管理的核心組件,其性能直接影響著整個系統(tǒng)的穩(wěn)定性和可靠性
    的頭像 發(fā)表于 02-05 14:10 ?276次閱讀

    深入剖析LM2940QML與LM2940QML - SP 1A低壓差穩(wěn)壓器

    深入剖析LM2940QML與LM2940QML - SP 1A低壓差穩(wěn)壓器 在電子設(shè)計(jì)領(lǐng)域,穩(wěn)壓器是保障電路穩(wěn)定運(yùn)行的關(guān)鍵元件。今天,我們就來詳細(xì)探討德州儀器(TI)的LM2940QML
    的頭像 發(fā)表于 02-05 13:50 ?377次閱讀

    ?LM136A-2.5QML/LM136A-2.5QML-SP 技術(shù)文檔摘要

    LM136A-2.5QML集成電路是一款精密的2.5V并聯(lián)穩(wěn)壓二極管。該單片IC基準(zhǔn)電壓源作為低溫度系數(shù)的2.5V齊納管工作,動態(tài)阻抗為0.2Ω。LM136A-2.5QML 上的第三個端子可以輕松
    的頭像 發(fā)表于 08-15 09:55 ?1076次閱讀
    ?LM136A-2.5<b class='flag-5'>QML</b>/LM136A-2.5<b class='flag-5'>QML</b>-SP 技術(shù)文檔摘要

    ?LM4050QML精密微功耗并聯(lián)電壓基準(zhǔn)芯片技術(shù)文檔總結(jié)

    LM4050QML精密基準(zhǔn)電壓源采用10引腳陶瓷CLGA封裝。 該LM4050QML的設(shè)計(jì)消除了對外部穩(wěn)定電容器的需求,同時確保 具有容性負(fù)載的穩(wěn)定性,從而使LM4050QML易于
    的頭像 發(fā)表于 08-13 09:36 ?1056次閱讀
    ?LM4050<b class='flag-5'>QML</b>精密微功耗并聯(lián)電壓基準(zhǔn)芯片技術(shù)文檔總結(jié)

    凡億Allegro Skill工藝輔助之導(dǎo)出公制的坐標(biāo)

    一般設(shè)計(jì)人員在pcb設(shè)計(jì)時使用英制單位,而在pcb設(shè)計(jì)完成后,我們需要導(dǎo)出坐標(biāo)文件用于貼片廠進(jìn)行貼片;有的板廠要求導(dǎo)出的坐標(biāo)文件為公制單位,切換單位會比較麻煩且容易產(chǎn)生DRC錯誤或者誤差,因此,F(xiàn)anyskill腳步提供一鍵輸出
    的頭像 發(fā)表于 07-24 16:24 ?3548次閱讀
    凡億Allegro Skill工藝輔助之<b class='flag-5'>導(dǎo)出</b>公制的坐標(biāo)

    PADS導(dǎo)出.318文件遺漏器件

    這是PADS LAYOUT的基本腳本導(dǎo)出的坐標(biāo)文件,圖中我的這個器件是TYPE-C卡座,是需要機(jī)器貼片的,這個器件的封裝是包含貼片焊盤和固定用的通孔的,現(xiàn)在導(dǎo)出后軟件的SMD屬性是NO
    發(fā)表于 04-12 14:14