Maison >développement back-end >C++ >Comment connecter des signaux C avec des paramètres QString aux emplacements QML ?

Comment connecter des signaux C avec des paramètres QString aux emplacements QML ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-03 09:25:031038parcourir

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

Connexion des signaux C aux emplacements QML

Dans Qt, la communication entre C et QML peut être réalisée en connectant les signaux C aux emplacements QML. Bien que l'envoi de paramètres de type primitif fonctionne de manière transparente, l'envoi de signaux avec des types complexes comme QString peut entraîner des erreurs.

Connexion avec les paramètres QString

Pour connecter un signal transportant une QString à un emplacement QML, la norme La méthode de connexion objet à objet utilisant QObject::connect() peut ne pas suffire. Au lieu de cela, utilisez les Connexions de Qt pour établir le lien.

Procédure :

  1. Exposer l'objet C dans QML : Ajoutez votre objet C au fichier QML en utilisant setContextProperty.
<code class="cpp">qmlVectorForm->rootContext()->setContextProperty("YourObject", myOb);</code>
  1. Définissez le signal : Votre signal C ressemblera maintenant à ceci :
<code class="cpp">finishedGatheringDataForItem(QString signalString)</code>
  1. Ajouter des connexions dans QML : Établir des connexions dans QML file:
<code class="qml">Connections {
    target: YourObject
    onFinishedGatheringDataForItem: {
        qmlString = signalString
    }
}</code>

Cela créera une connexion entre le signal finiGatheringDataForItem en C et le gestionnaire onFinishedGatheringDataForItem en QML, vous permettant de gérer efficacement le paramètre QString.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn