Intégration de la console Python dans une application GUI c++

Je vais ajouter un widget console Python (dans une interface graphique C++) sous d'autres contrôles:

De nombreuses classes vont être exposées au code python, y compris un accès à L'interface graphique (peut-être que je vais considérer PyQt).

Dois-je exécuter le code Python dans un thread séparé?

Je pense que c'est une bonne approche, car L'interface graphique ne sera pas gelée lors de l'exécution de commandes longues. Mais d'un autre côté, les autres contrôles ne devraient-ils pas être désactivés Pour préserver l'état des objets et éviter les conflits?

25
demandé sur Community 2010-01-10 22:26:09

1 réponses

Puisque vous êtes apparemment désireux d'intégrer un interpréteur Python pour utiliser Python comme langage de script dans ce qui semble être une application Qt, je vous suggère de regarder PythonQt.

Avec le module PythonQt, les scripts Python pourront interagir avec l'interface graphique de votre application hôte.

Contrairement à PyQt et Qt Jambi, PythonQt n'est pas conçu pour fournir un support aux développeurs qui écrivent des applications autonomes. Au lieu de cela, il fournit des fonctionnalités pour intégrer un Python interpréteur et se concentre sur le fait qu'il est facile d'exposer des parties de L'application à Python.

Si j'ai bien compris vos besoins, c'est tout ce dont vous avez besoin.

PyQt et PySide (officiellement pris en charge par Nokia) visent à accéder aux fonctionnalités Qt à partir d'un programme Python en fournissant des liaisons.

Il est possible d'intégrer PyQt dans votre application ( même une application Qt) et vos scripts Python pourront fournir leur propre interface graphique tout en interagissant avec votre API de script d'application.

À propos de la sécurité des threads, Qt offre un moyen sûr de poster des événements et des connexions à fente de signal entre les threads.

Références:

13
répondu Gregory Pakosz 2016-11-15 21:57:01