4. Appel direct de code Python
Une approche alternative pour effectuer la communication entre Python et Qt Quick est
d'appeler directement des fonctions Python depuis le code QML, sans vraiment
chercher à comprendre le fonctionnement de PyQt. Par défaut, PyQt ne propose rien en
ce sens ; ce manque est comblé par l'extension PyOtherSide. Quelques paquets
précompilés existent déjà pour Linux, mais il faut le compiler pour les autres
plateformes.
La communication se fait à l'aide d'un composant Python :
import io.thp.pyotherside 1.5
Python {
id: python
Component.onCompleted: {
// …
}
}
Les opérations sont asynchrones : l'opération à effectuer est transférée à Python et, du
côté Qt Quick, la fonction JavaScript correspondante renvoie directement sa valeur.
C'est pour ça que toutes les opérations PyOtherSide prennent, en dernier argument, une
fonction anonyme : dès que l'opération demandée est effectuée, cette fonction est
appelée.
import io.thp.pyotherside 1.5
Python {
id: python
property bool ready: false
Component.onCompleted: { importModule("json", function() { ready = true })
} }
Cette propriété prend la valeur booléenne vraie dès que le composant peut être
utilisé.
La première opération possible est d'importer un module Python, ici json.
391
Précédent

- 392/494

Suivant