Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Creator Discussion :

Affichage d'une variable d'un programme Python


Sujet :

Qt Creator

  1. #1
    Candidat au Club
    Affichage d'une variable d'un programme Python
    Bonjour à tous !

    M'étant lancé dans un programme Qt afin de faire une interface graphique pour afficher les données de mon programme python sur raspberry, je cherche à comprendre comment en afficher ses variables...
    Je m'explique: je cherche à afficher la pression et la température à un certain intervalle de temps donné. Ce programme fonctionne déjà dans un programme python que j'ai conçu et affiche ses résultats dans le terminal.
    Néanmoins, j'ai besoin d'avoir ses données sur une interface graphique (i.e. faite avec Qt).
    Le problème est que je n'ai aucune idée de par où commencer... Il y a des forums qui parlent d'afficher des variables mais le code est en C++ => ne m'intéresse pas.
    L'idéal serait d'intégrer mon code python dans le dossier de mon application, d'aller dans l'interface graphique, de créer un texte en lui demandant d'afficher le contenu de telle variable et lui demander de rafraichir sa donnée dans un intervalle de temps x. Est-ce possible selon vous ?

    Merci à tous ceux qui prendront le temps de me répondre !

  2. #2
    Membre éclairé
    https://wiki.python.org/moin/PyQt C'est surement ce qui conviendrait le mieux non ? QT mais en python
    Sinon tkinter, qui est un module présent de base sous Python. Moins poussé que pyQT certes, mais beaucoup plus simple et surtout largement suffisant pour un affichage de variable tout con.
    Parce que passer par qt pour afficher un truc python, c'est un peu étrange, mais en supposant que tu en aies l'absolu nécessité, dans ton programme Python, tu écris cette variable dans un fichier 'Variable.txt' et tu vas chercher cet variable avec Qt, puis tu crées un truc graphique et tu affiches ta variable.

    PS: Utiliser Qt c'est possible qu'en C++ hein , ça va être compliqué si ça t'intéresses pas.
    "C'est d'un ennui…"

    Shikamaru Nara

  3. #3
    Responsable Systèmes

    Si tu as d'un coté ton appli Python et de l'autre coté ton appli C++/Qt, tu peux demander à Python de stocker ses valeurs dans des variables d'environnement, que le programme Qt récupèrera. Ton appli Python restera autonome et utilisable en ligne de commande, et la modif de celle-ci pour stocker les valeurs dans des variables d’environnement est une modif légère.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutor...s/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Candidat au Club
    Merci pour toutes vos réponses !

    Citation Envoyé par viper1094 Voir le message
    https://wiki.python.org/moin/PyQt C'est surement ce qui conviendrait le mieux non ? QT mais en python
    Sinon tkinter, qui est un module présent de base sous Python. Moins poussé que pyQT certes, mais beaucoup plus simple et surtout largement suffisant pour un affichage de variable tout con.
    Parce que passer par qt pour afficher un truc python, c'est un peu étrange, mais en supposant que tu en aies l'absolu nécessité, dans ton programme Python, tu écris cette variable dans un fichier 'Variable.txt' et tu vas chercher cet variable avec Qt, puis tu crées un truc graphique et tu affiches ta variable.

    PS: Utiliser Qt c'est possible qu'en C++ hein , ça va être compliqué si ça t'intéresses pas.
    Alors ça pourrait être pas mal mais le problème est que les variables vont changer plusieurs fois par secondes... :/
    Et pour tkinter, le problème est que les interfaces sont pas hyper jolies et étant sur raspberry j'aurais voulu faire de belles applis ! (après on peut passer en langages web mais le raspberry n'est pas du tout optimisé pour chromium je trouve...)
    Et j'ai pu voir que faire des interfaces graphiques sur raspberry c'est en fait compliqué, tout le monde propose des trucs mais rien ne semble vraiment sortir du lot comme LA solution :/

    Si tu as d'un coté ton appli Python et de l'autre ton apppli C++/Qt, tu peux demander à Python de stocker ses valeurs dans des variables d'environnement, que le programme Qt récupèrera. Ton appli Python restera autonome et utilisable en ligne de commande, et la modif de celle-ci pour stocker les valeurs dans des variables d’environnement est une modif légère.
    Ça ça pourrait peut-être marcher, à voir... Mais il est vrai que je n'avais pas vraiment vu QT comme ça... Je pensais que c'était beaucoup plus simple pour créer une interface graphique pour un programme... C'est quand même hallucinant de voir le problème que ça pose pour créer un simple programme graphique sur raspberry quand même...

  5. #5
    Responsable Systèmes

    Ma solution n'est à mon avis pas la seule. Tu dois pouvoir aussi faire une intégration plus profonde avec Qt. Pour cela, attends le retour de spécialistes Qt.

    C'est quand même hallucinant de voir le problème que ça pose pour créer un simple programme graphique sur raspberry quand même...
    Tu devrais pouvoir aussi assez facilement faire une interface Web sur le Raspberry qui utilise les données de ton appli.

    Regardes ceci.

    Des données sont récupérés depuis des outils et transforme celles-ci en affichage web graphique.

    Tu devrais pouvoirutiliser les mêmes outils avec ton appli Python en récupérant les valeurs qu'elle retourne.Tu devrais aussi pouvoir réaliser ce travail directement depuis Python, avec Qt, ou autre chose.

    Tu n'es limité que par tes compétences en programmation, mais ne le prend pas mal car des compétences ça s'acquiert, et le problème est contournable en utilisant des outils tout fait.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutor...s/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

  6. #6
    Candidat au Club
    C'est justement ce que je voulais faire au début (interface web), mais chromium n'est pas assez optimisé à mon gout malheureusement...

    Pour ce qui est du lien que tu m'as donné pourquoi pas, à voir, il faut que je m'y penche un peu plus en détail.

    Oui tout à fait, et acquérir ces compétences prend sûrement plus de temps que la conception en elle-même une fois ces dernières acquéries ! Merci tout de même pour ton aide.

  7. #7
    Responsable Qt & Livres



    Pour faire transiter des informations plusieurs fois par seconde, le mieux est probablement de directement coder ton interface avec PyQt (https://riverbankcomputing.com/software/pyqt/intro) ou PySide (https://pypi.org/project/PySide2/). Les deux se ressemblent énormément, la différence principale est la licence (GPL pour PyQt, LGPL pour PySide).
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !