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 に答える