【问题标题】:How do I change the label text in one qml file from another qml file using Qt/QML/C++ in Cascades, Blackberry 10?如何在 Cascades、Blackberry 10 中使用 Qt/QML/C++ 从另一个 qml 文件中更改一个 qml 文件中的标签文本?
【发布时间】:2013-08-14 08:12:44
【问题描述】:

假设资产文件夹中的一个文件是RoomDetails.qml

import bb.cascades 1.0
import "commons"

Page {
    Container {
         PageHeader{}

         //rest of the code
    }  
 }

assets/commons 文件夹中的另一个文件是PageHeader.qml:

import bb.cascades 1.0


    Container {
         Label {
             id: dynamicLabel
         }

         //rest of the code
     }

现在,我想将 dynamicLabel.textRoomDetails.qml 更改为“房间详细信息”,并且类似地从包含 PageHeader 的其他 qml 文件中更改。这个问题的解决方案是什么?可以使用 Qt 或 QML 或 C++。提前致谢。

【问题讨论】:

    标签: c++ qt qml blackberry-10 blackberry-cascades


    【解决方案1】:

    首先,我认为您不需要将 Page 作为 PageHeader 的根元素。

    以下是 PageHeader 的外观,您可以定义一个属性标题,如下所示,您可以从创建它的 QML 访问它。

    import bb.cascades 1.0
    
    Container {
        property alias title: dynamicLabel.text
        Label {
            id: dynamicLabel
        }
        //rest of the code
    }
    

    在 RoomDetais QML 中,您可以像下面这样使用 PageHeader,并通过访问它的 title 属性来访问标签。

    import bb.cascades 1.0
    import "commons"
    
    Page {
        Container {
             PageHeader{
                 title: "Room Details"
             }
             //rest of the code
        }  
     }
    

    【讨论】:

    • 对不起,我的 PageHeader 代码和你的一样。这两天没睡。感谢您指出错字。
    • 我从 PageHeader 中删除了 Page 作为根元素,现在根是 Container
    • 我对 PageHeader 的句子有点不正确,我改了
    猜你喜欢
    • 2014-04-05
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    • 2022-06-15
    • 1970-01-01
    相关资源
    最近更新 更多