簡體   English   中英

從其他qml文件更改元素的屬性

[英]changing property of element from other qml file

我知道有很多類似的話題,我試圖從他們那里得到答案,但我仍然沒有結果。

我從qt創作者那里提取了一些示例項目來玩這個。 我玩的qml文件的可見性不斷變化(將每個文件視為其他屏幕)。 午餐了第三個屏幕后,我想使第二個屏幕不可見。 這是我要在其中更改屬性的代碼:

MyLuncherList.qml

import QtQuick 2.0

Rectangle {



    Item
    {
        id:ei
        visible:false
        clip: true

        property url itemUrl
         onItemUrlChanged:
        {

            visible = (itemUrl== '' ? false : true);
        }
        anchors.fill: parent
        anchors.bottomMargin: 40

         Rectangle
        {
            id:bg
            anchors.fill: parent
            color: "white"
        }
        MouseArea
        {
             anchors.fill: parent
             enabled: ei.visible
             //takes mouse events
        }
        Loader
        {
            focus:true
            source: ei.itemUrl
            anchors.fill: parent
        }
    }
}

這是我要執行操作的代碼
View2.qml

import QtQuick 2.0

Rectangle {
    width: 100
    height: 62
    Text
    {
     text: "second screen"
    }
    MyLuncherList
    {
        id:luncherList
    }
    Rectangle
    {
        x: 50
        y: 30
        width: 120
        height: 60
        color: "red"
        MouseArea
        {
            anchors.fill: parent
            id: mouseAreaWhichHides
            onClicked:
            {
                luncherList.ei.itemUrl = '';
            }
        }
    }


}

並且我得到了錯誤: qrc:///View2.qml:29: TypeError: Type error ,該qrc:///View2.qml:29: TypeError: Type error指向這一行luncherList.ei.itemUrl = ''; 類型錯誤表示我與類型有些不匹配,但是我什至不確定(如果我以正確的方式執行此訪問過程),所以我問如何更改屬性

ei.itemUrl

View2.qml

以工作方式。

ei元素不能直接在其他QML文件中使用。 您可以使用別名來做到這一點。

property alias callUrl: ei.itemUrl

並從其他QML文件中調用

luncherList.callUrl='file:///home/user/file.jpg'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM