5

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

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"

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

最好的问候,尼克

4

2 回答 2

3

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

如果它不在组件中,您可以参考它的 id。

于 2013-07-26T14:33:52.970 回答
1

那是因为ComponentQML 元素。只需Dialog在文件中创建顶级项目.qml并将视为动态实例化的组件。

于 2013-04-11T17:09:42.070 回答