【问题标题】:Unable to access the properties of one QML in another无法在另一个 QML 中访问一个 QML 的属性
【发布时间】:2013-08-02 15:36:22
【问题描述】:

我有一个 QML 文件

QMLFile1.qml

Rectangle{   

    id: LogicFile
    property int  characters
    property bool checked

}

在第二个 QML 文件 QMLFile2.qml

如果我尝试像这样在第二个文件中实例化第一个文件

Rectangle{

   QMLFile1{

         // unable to access the 
         //properties here id: LogicFile
         // property int  characters
         //property bool checked
   }

}

为什么我无法在第二个 QMLFile 中访问第一个 QMLFile 的属性。

但是,如果我直接在第二个文件中实例化 firstQML 文件,即不在像 rectangle 、 item 等任何元素内,那么所有属性都可以访问,为什么会这样?

【问题讨论】:

    标签: qt qml


    【解决方案1】:

    您可以访问第二个文件中的属性,为此:

    1. 使用属性别名向外界公开你的父元素的id。
    2. 现在用第二个文件中的别名 id 重新定义 id
    3. 现在您可以使用别名 ID 名称和 .(dot) 运算符访问它们

    示例:

    QMLFile1.qml

    Rectangle{
        id: LogicFile
        property alias rectId:LogicFile // exposing id to outside files
        property int  characters
        property bool checked
    }
    

    QMLFile2.qml

    Rectangle{
    
       QMLFile1{
    
               id:rectId       
    
              //Now you can access them like rectId.characters/rectId.checked
              rectId.characters = 10 
    
       }
    
    }
    

    【讨论】:

    • 以前怎么没有发生:P
    • 我也很惊讶这种技术是实现 OPs 目标所必需的@SanyamGoel
    猜你喜欢
    • 2019-04-13
    • 2017-02-27
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    • 2022-06-15
    相关资源
    最近更新 更多