C 信号を QML スロットに接続する
問題:
QString を送信しようとするときC 信号から QML スロットにパラメータを追加すると、「そのようなスロットはありません」というエラーが発生しますQDeclarativeRectangle_QML_2::updateViewWithItem(QString)."
解決策:
接続の使用
この問題を解決するには、接続は直接スロットの代わりに採用されるconnection.
C オブジェクトを QML に公開する:
メイン C の setContextProperty() を使用して、C オブジェクト (myObj) を QML コンテキスト プロパティに追加します。 code.
<code class="cpp">qmlVectorForm->rootContext()->setContextProperty("YourObject", myOb);</code>
信号の定義:
C では、信号を次のように定義します:
<code class="cpp">finishedGatheringDataForItem(QString signalString);</code>
に接続を追加QML:
QML ファイルで、公開されたオブジェクトに接続を追加します:
<code class="qml">Connections { target: YourObject onFinishedGatheringDataForItem: { qmlString = signalString } }</code>
接続を使用することで、QML スロットは QString パラメーターを受け取ることができます前のエラーなしで正しく実行されました。
以上がQString パラメータを使用して C 信号を QML スロットに接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。