Heim >Backend-Entwicklung >C++ >Wie verbinde ich C-Signale mit QML-Slots mit QString-Parametern?

Wie verbinde ich C-Signale mit QML-Slots mit QString-Parametern?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-04 02:53:29501Durchsuche

How to Connect C   Signals to QML Slots with QString Parameters?

Verbinden von C-Signalen mit QML-Steckplätzen

Problem:

Beim Versuch, einen QString zu senden Parameter von einem C-Signal an einen QML-Steckplatz übertragen, tritt die Fehlermeldung „Kein solcher Steckplatz“ auf QDeclarativeRectangle_QML_2::updateViewWithItem(QString). anstelle des direkten Steckplatzes eingesetzt werden Verbindungen.

C-Objekt für QML verfügbar machen:

Fügen Sie das C-Objekt (myObj) zur QML-Kontexteigenschaft hinzu, indem Sie setContextProperty() im Haupt-C-Code verwenden .

  1. Definieren Signal:

    Definieren Sie in C das Signal als:

    <code class="cpp">qmlVectorForm->rootContext()->setContextProperty("YourObject", myOb);</code>
  2. Verbindungen in QML hinzufügen:

    Im QML-Datei, Verbindungen zum exponierten Objekt hinzufügen:

    <code class="cpp">finishedGatheringDataForItem(QString signalString);</code>
  3. Durch Verwendung Verbindungen kann der QML-Slot den QString-Parameter ohne den vorherigen Fehler korrekt empfangen.

Das obige ist der detaillierte Inhalt vonWie verbinde ich C-Signale mit QML-Slots mit QString-Parametern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn