In Qt kann die Kommunikation zwischen C und QML durch den Anschluss von C-Signalen an QML-Steckplätze erreicht werden. Während das Senden von Parametern primitiver Typen reibungslos funktioniert, kann das Senden von Signalen mit komplexen Typen wie QString zu Fehlern führen.
Um ein Signal, das einen QString trägt, mit einem QML-Slot zu verbinden, ist der Standard Die Objekt-zu-Objekt-Verbindungsmethode mit QObject::connect() reicht möglicherweise nicht aus. Verwenden Sie stattdessen die Verbindungen von Qt, um die Verknüpfung herzustellen.
Vorgehensweise:
<code class="cpp">qmlVectorForm->rootContext()->setContextProperty("YourObject", myOb);</code>
<code class="cpp">finishedGatheringDataForItem(QString signalString)</code>
<code class="qml">Connections { target: YourObject onFinishedGatheringDataForItem: { qmlString = signalString } }</code>
Dadurch wird eine Verbindung zwischen demfinishedGatheringDataForItem erstellt signal in C und den onFinishedGatheringDataForItem-Handler in QML, sodass Sie den QString-Parameter effektiv verarbeiten können.
Das obige ist der detaillierte Inhalt vonWie verbinde ich C-Signale mit QString-Parametern mit QML-Slots?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!