Bonjour,
Je suis intéressé par pyside en python et je souhaiterait savoir si on peut faire avec ce framwork une applications GUI réactives.
Merci pour vos renseignement
Salutations et bonne année.
Bonjour,
Je suis intéressé par pyside en python et je souhaiterait savoir si on peut faire avec ce framwork une applications GUI réactives.
Merci pour vos renseignement
Salutations et bonne année.
Bonjour,
Par exemple, avec l'api swing swing en java, il faut mettre les fenêtre dans l'edt (Event dispash tread) les commande liées à interface graphique pour que celle ci soit plus réactive.
Qu'en est-il avec pySide ?
Merci de votre réponse.
Salutations
Bonjour,
Event dispach thread en swing correspond-il a ça en qt ?
http://qt-project.org/wiki/Threads_Events_QObjects
Merci pour vos Renseignements
Salutations
Salut,
l'edt de swing correspond a ce que décrit dans le chapitre "Events and the event loop" du document Qt.
- W
Bonjour,
A quoi corresponde les ligne Java suivante en pyxide avec Python ?
Et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Swingutlitied.invokelater(runnable r)Point de vue performance, Java et Python sont-il comparable ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Swingutilities.invokandwaite(runnable r)
Peut-on faire des application rapide et réactives en Python avec pyside par exemple ?
Merci de me renseigner
Salutations
Bonjour,
Je ne développe pas en java, mais j'utilise souvent des logiciels codés en java (dont Eclipse): je me rends donc bien compte de ce qu'on peut obtenir en java pour des applications graphiques.
Par contre, je développe des logiciels en Python avec PyQt4 (très proches de PySide), et je suis très satisfait de sa rapidité. On obtient des applications de type bureautique dont la rapidité est largement suffisante pour qu'on ne sache même plus en quel langage c'est programmé.
En effet, si Python est un langage interprété en bytecodes comme java, la bibliothèque graphique Qt4, utilisée par PyQt4 et PySide, est écrite en C++ et s'exécute en code natif: c'est très rapide
Donc, sans parler d'applications critiques pour lesquelles le retour au C ou C++ serait nécessaire, on pourrait dire que là ou java conviendrait, Python+Qt fera au moins aussi bien.
Sans vouloir être vexant, pourquoi un développeur Python devrait savoir ou chercher à savoir à quoi correspondent des commandes Java, surtout s'il ne panne rien au Java ...
Personnellement je me verrai mal arriver sur un forum et dire de but en blanc : je viens de là, comment on fait ça chez vous ?
Cette petite mise au point faite, si j'interprète bien ta demande je pense comme tyrtamos : si java sait faire, Python saura faire.... corrigez moi si je me trompe, mais Java n'est pas réputé pour être un code très rapide en termes d'exécution.
Malgré tout si une fenêtre créée en PyQt ou PySide ne te donnait pas satisfaction dans son exécution, et je tiens à repréciser ce que wiztricks a dit : PyQt et PySide ne sont "que" des bindings, comprendre qu'ils permettent "juste" de faire le lien entre un code Pyhton et la bibliothèque Qt, alors il te reste Qt Quick exécuté depuis Python.
Toute l'interface sera faite en QML et seule la partie logique sera faite (toute ou partie) en Python.
++
J
Initiation à Qt Quick et QML : Partie 1 - Partie 2
En cas de besoin, pensez à la
Mon site et mes tutoriaux sur Developpez.com
Pas de question technique par MP... Les forums sont là pour ça
Bonjour,
Les lignes Java que je vous ai montré dans mon message précédant permet d'ajouter une action à la event loop et rendre immédiatement la main au thread principal c'est donc un appel non bloquant et c'est un des principe des application réactive : envoie de message et continuer l'exécution, gérer les callbacks et notifications
Peut-on faire cela avec PySide, PyQt ou autre ?
Merci de me renseigner
Salutations
Bonsoir,
Le plus simple, c'est que tu regardes le code que j'ai donné pour répondre à une question sur ce forum: http://www.developpez.net/forums/d14...e/#post8109541.
Le code est complet, fonctionne sous Python 3 et PyQt4, et il est copieusement commenté.
A l'exécution, il vient une fenêtre avec un bouton au milieu. La fenêtre attend qu'il se passe quelque chose (boucle de traitement des évènements). On clique sur le bouton: un thread est lancé pour dézipper un gros fichier zip, avec une petite fenêtre de progression. Le programme de dézippage envoie un signal à chaque nouveau fichier dézippé pour que le programme principal puisse mettre à jour la barre de progression. Et à la fin, le thread envoie un signal de fin pour informer le programme principal que le dézippage est terminé. En plus, on peut interrompre le dézippage, ce qui arrête le thread proprement.
Salut,
Dans votre réponse, vous mentionniez un document du wiki Qt qui explique cela très bien.
Que voulez vous qu'on y ajoute?
De toutes façons tant que vous n'allez pas essayer de coder en utilisant ces fonctionnalités, tout cela resteraabstraitnébuleux.
- W
Question : on parle de réactivité GUI ou logique ? Parce qu'en fait applications GUI réactives c'est un peu perturbant
Au risque de passer pour un lourding qui ne comprend rien à ce qu'on demande, c'est pas ça que tu cherches : http://doc.qt.io/qt-5/qthread.html ou encore ça : http://python.developpez.com/faq/?pa...ent-les-Thread ?
Initiation à Qt Quick et QML : Partie 1 - Partie 2
En cas de besoin, pensez à la
Mon site et mes tutoriaux sur Developpez.com
Pas de question technique par MP... Les forums sont là pour ça
Bonjour,
En swing, avec java, il faut mettre les commandes liée à l'interface graphique doive être placéedans le tread edt pour que l'application soit réactive. Selon la documentation en qt, il y a le thread principal appelé gui et c'est lé dedans que les commande liée au gui doivent être exécutée. je suppose qu'il y a la membre chose en pyside
Pouvez-vous me confirmer cela et me dire comment accéder à ce thread et lui donner du code à exécuter
voici un sujet sur les applications réactives
http://www.developpez.net/forums/d14...stion-donnees/
Que pensez-vous de ce sujet et comment faire ça avec pyside ?
Merci d'avance
Salutations
Je ne sais pas si c'est la fatigue ou autre chose, mais j'ai franchement du mal à comprendre ce que tu veux faire.... ou plutôt pourquoi tu te prends autant la tête ...
Mais avant toute chose, je te conseillerai déjà d'oublier PySide ... le projet est mort (officiellement depuis début 2015).
Pour revenir à ton "problème" : je ne sais pas comment ça fonctionne en Java (et vu comment tu présentes les choses, ça me donne pas du tout envie de comprendre) mais en Python (il me semblait d'ailleurs que c'était pareil dans les autres langages, mais bon je ne suis qu'un "pythonien" autodidacte) lorsque tu lances un programme, graphique ou non, tu exécutes une tâche que l'on pourra appeler tâche principale.
Ton code va s'exécuter dans l'ordre que tu l'as écrit et certains événements vont te "propulser" vers une partie spécifique de ton code.
Si tu veux exécuter plusieurs tâches en même temps il va te falloir passer par le multi-threading.
Question : les notions de fonction, classe, .... en Python te sont familières ou non ??? je veux pas avoir l'air médisant, mais j'ai l'impression que tu brûles pas mal d'étape. Oui Python est un langage simple, mais faut pas abuser non plus![]()
Initiation à Qt Quick et QML : Partie 1 - Partie 2
En cas de besoin, pensez à la
Mon site et mes tutoriaux sur Developpez.com
Pas de question technique par MP... Les forums sont là pour ça
Ce qui s'applique à Qt s'applique aussi à PySide: c'est la même chose.
Pour le reste, si vous voulez vous mettre sérieusement à Qt et à Python, il faudra de toutes façons oublier le folklore Java.
C'est un peu comme parler une autre langue, vous ne la parlerez bien qu'a partir du moment ou vous serez capable de penser avec i.e. sans vouloir "traduire".
Qt a inventé la mécanique "signal/slot". C'est une façon très originale pour expédier des messages entre threads (et construire des applications réactives) qui évite de poster une commande dans l'event-loop "directement".
Vous trouverez aussi la méthode .postEvent pour faire à la "Java-like".
Si vous ne comprenez pas ce qu'explique le document en plusieurs pages et bien écrit, quelles chances auront les réponses qu'on ferait ici en quelques lignes ?
Bon courage,
- W
Partager