2

ウィジェットで UI を作成し、edittext コントロールと pushButton コントロールを追加しました。QML ファイルには TextInput コントロールがあります。QML でウィジェット コントロールを表示できます。ここで、QML の EditText コントロール テキストを、ウィジェットの pushButton がクリックされたときにウィジェット内にある edittext コントロールのテキストに設定したいと考えています。ボタンをクリックすると、editText から QML TextInput にテキストを送信したいと思います。

それはどのように可能ですか。

以下を使用して、QML でウィジェットを登録して使用しました。main.cpp ファイル --->

qmlRegisterType<WidgetContainer>("MyWidget", 1, 0, "MyWidget");

QML ファイルの内容:

import QtQuick 1.1
import MyWidget 1.0
Rectangle {
    width: 360
    height: 360
    color: "gray"
    TextInput {
        id: textInput1
        x: 10
        y: 10
        width: 100
        height: 100
        color: "black"
        cursorVisible: true
        text: widget.getText()
    }

    MyWidget {
        id: widget
        x:10;
        y:70
        width: 180;
        height: 150
        text: "Widget text"
    }
}
4

1 に答える 1

1

クラスWidgetContainerは、ボタンがクリックされたときにシグナルを発する必要があります。次に、必要なクリックされたハンドルを QML で記述できるようになります。

デフォルトでは、ボタン (またはWidgetContainerクラスの他のメンバー) は QML コードでは使用できません。したがって、ボタンのclickedシグナルを QML で直接使用することはできません。クラスでシグナル
などを宣言する必要があります。次に、の信号をボタンの信号に接続する必要があります。buttonClickedWidgetContainerWidgetContainerbuttonClickedclicked

buttonClickedQML でシグナルを使用できるようになりました。

TextInput {
    id: textInput1
    text: widget.getText()
}

MyWidget {
    id: widget
    text: "Widget text"
    onButtonClicked: textInput1.text = text
}
于 2012-12-02T15:34:32.387 に答える