如何在 Cascades、Blackberry 10 中使用 Qt/QML/C++ 从另一个 qml 文件中更改一个 qml 文件中的标签文本?

Posted

技术标签:

【中文标题】如何在 Cascades、Blackberry 10 中使用 Qt/QML/C++ 从另一个 qml 文件中更改一个 qml 文件中的标签文本?【英文标题】:How do I change the label text in one qml file from another qml file using Qt/QML/C++ in Cascades, Blackberry 10? 【发布时间】: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++。提前致谢。

【问题讨论】:

【参考方案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 的句子有点不正确,我改了

以上是关于如何在 Cascades、Blackberry 10 中使用 Qt/QML/C++ 从另一个 qml 文件中更改一个 qml 文件中的标签文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Blackberry Cascades qml 和 qt 中点击列表项组件

如何在 Blackberry Cascades、QML 和 C++、QT 的列表视图中获取 Web 视图

Blackberry Cascades 上下文菜单从按钮单击

我的 Blackberry 10 Cascades(C++、Qt 和 QML)示例应用程序在启动时崩溃并出现以下错误

Blackberry 10 Cascades、qml (C++ & QT) 中的布局存在问题

BlackBerry Cascades 中的 QML 字符串