qt - QML:子属性的别名

标签 qt properties alias qml qt5

我创建了对话框并尝试添加一些别名来更改它的标题和文本:

import QtQuick 2.0
import Ubuntu.Components 0.1
import Ubuntu.Components.Popups 0.1

Item {
    signal confirmed;
    signal canceled;

    property alias title: dialog.title
    property alias text: dialog.text

    signal show(variant caller);

    Component {
         id: dialogComponent

         Dialog {
             id: dialog
             title: "Exit Game"
             text: "Are you sure that you want to exit?"

             Button {
                 text: "cancel"
                 onClicked:
                 {
                     canceled();
                     PopupUtils.close(dialog);
                 }
             }

             Button {
                 text: "confirm"
                 color: "orange"
                 onClicked:
                 {
                     confirmed();
                     PopupUtils.close(dialog);
                 }
             }
         }
    }

    onShow:
    {
        PopupUtils.open(dialogComponent, caller)
    }
}

但我有问题:
qrc:/ConfirmationDialog.qml:8:23: Invalid alias reference. Unable to find id "dialog"

那么,如何创建这个别名呢?为什么项目看不到它?更改此属性的最佳方法是什么?

此致,
缺口

最佳答案

Dialog 对象在您实例化它之前将不可用,因为它位于组件内部。

如果它不在组件中,您可以引用它的 id。

关于qt - QML:子属性的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15953151/

相关文章:

python - 如何在不忘记在子类中添加属性装饰器的情况下覆盖抽象属性方法?

python - 重用数据类类型提示

linux - 为 `ls` 创建别名,在 csh 中包含 `echo`

c++ - 在 Mac 和 Windows 上部署 Qt+Boost 应用程序

qt - inputMethodHints : Qt. ImhDigitsOnly 不起作用

qt - 如何在 Qt 运行时更改语言?

c++ - 路径中的 Qt5 转义空间

java - 使用 Spring (Java) 加载 .properties 文件

java - 从 .config 文件中读取更新的值

php - 动态为mysql查询中的所有字段名分配别名