0

これは私がここで見逃している本当に小さなことかもしれませんが、私はこれを理解しようとかなりの時間を費やしました. 私はObjective-Cのバックグラウンドから来ており、私がやろうとしていることはこれです:

navigationPane である main.qml があり、添付オブジェクトとして他の 2 つの外部ページが追加されています。2 つのページには、グリッド リスト ビューがあります。現在、Json ファイルをロードし、結果を main.qml ファイルに入力する MyApp.cpp ファイルがあります。最初は関連する項目のみをこのページに表示します。ユーザーが任意のアイテムをタップすると、上記のようにグリッド リスト ビューを持つ page2.qml に移動し、main.qml (MyApp.cpp からのすべてのデータを含む) から渡された dataModel を入力します。これは私にまったく喜びを与えませんでした!私は助けが必要です。これを機能させるにはどうすればよいですか?これについて助けが必要です...

4

1 に答える 1

0

これがベスト プラクティスかどうかはわかりませんが、私が見つけた最も簡単な方法は、Qt グローバル オブジェクトを使用することでした。

基本的に、データまたはオブジェクトのいずれかを Qt オブジェクトに割り当てると、他のページからアクセスできます。

たとえば
、onCreationCompleted の main.qml またはデータを受け取る任意の関数で:

function getData(data) {
    Qt.myVariable = data;
}

次に、他のページでアクセスできます。たとえば、Page2.qml では次のようになります。

Page {
    onCreationComplete: {
        myLabel.text = Qt.myVariable;
    }
}

前述したように、これはオブジェクトにも機能するため、ナビゲーション ペイン、シート、ページなどを割り当てることができます。つまり、「Qt.myNavPane.push(page)」のようなことが可能になります。

さまざまな目的で Qt を使用する必要がある問題に遭遇しました。シグナルとスロットは良い方法だと思いますが、必ずしも実用的ではありません。

于 2013-02-11T13:02:46.063 に答える