Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/07/2008, à 13:07

Cyman

[RESOLU] IDE Eric 4 (et Qt designer): mais comment ça marche????

Bonjour tout le monde,

J'ai besoin de votre aide pour résoudre un souci de GUI et d'IDE sans doute tout bête mais je n'y arrive pas! tongue

Je débute en Qt et je galère un maximum pour faire mon IHM couplée avec du code Python: suite aux réponses à mon dernier post, j'ai choisi d'essayer Qt et PyQt et plutôt que de tout faire à la main j'ai décidé d'utiliser Qt designer avec Eric en guise d'IDE (un couple que j'ai vu plusieurs fois cité dans d'autres posts). La prise en main de Qt designer a été plutôt simple. C'est avec Eric que je ne m'en sors pas: j'ai installé la dernière version (la 4.1.6) et elle fonctionne. Aucun souci de paquet manquant à signaler. Je ne peux pas en dire autant pour ce qui est de l'utilisation! hmm

Voilà ce que je fais pour l'instant:
1) Je crée un nouveau projet dans Eric 4.1.6
2) Je lance Qt designer et je crée ma GUI (+ édition des slots et des connexions),
3) Dans Eric, j'ajoute le fichier .ui que je viens de créer avec Qt designer
4) Je compile mon .ui
5) ?????

C'est là que je ne sais plus quoi faire. La compilation du .ui a généré et ajouté un .py du même nom dans l'arborescence projet mais que dois-je en faire? Dans un tuto sur Eric 3 et Qt designer, ils disent de generer la sous-classe associé au formulaire décrit dans le .ui mais dans la version 4 d'Eric, ce bouton n'existe plus. Et comme je ne sais pas vraiment à quoi il sert, je ne peux pas non plus retrouver son équivalent.

Ca fait deux jours que je cherche un tuto sur Eric 4 et pyQt. Ou juste sur Eric 4 d'ailleurs car la doc en ligne sur le site de l'éditeur n'apporte rien d'un point de vue fonctionnel: elle se contente de décrire les interfaces, boutons, panels et autres fioritures du logiciel. Je commence à sérieusement désespérer de m'en sortir.


Je vois plusieurs solutions (et autant de questions en fait) qui ne sont pas forcément toutes glorieuses:
1) quelqu'un peut m'indiquer où me procurer une doc ou un tuto digne de ce nom sur Eric 4 (et éventuellement son couplage avec Qt designer). En anglais ou en français, je prends.
2) l'un de vous peut me dire quelle est la marche à suivre une fois que le .py de la GUI est généré.
3) Je désinstalle Eric 4 pour le remplacer par Eric 3 et pouvoir donc appliquer les tutos que j'ai trouvés sans encombre.
3) Il y a un autre IDE beaucoup plus adapté et surtout documenté (!!) pour faire du python avec une GUI en Qt.
4) J'abandonne Eric et Qt et je vais essayer une librairie graphique (wxpython ou autre).

J'avoue que je préferais ne pas en arriver à changer d'IDE ou à abandonner Eric mais bon...


Experts en python ou Qt, habitués de Qt designer et d'Eric, vos conseils, suggestions, recommandations et tutti quanti sont les bienvenues!  big_smile

A l'aide!!

Dernière modification par Cyman (Le 13/08/2008, à 12:26)

Hors ligne

#2 Le 23/07/2008, à 16:48

Jean-Julien

Re : [RESOLU] IDE Eric 4 (et Qt designer): mais comment ça marche????

Plus tu mettras d'outils logiciels entre ta création et le résultat final, moins tu seras responsable de tes erreurs. Dépendant des bons et des mauvais côtés de chaque solution.
---
Personnellement, je maintiens un logiciel de protection d'archives depuis 1992. Ca fait donc 16 ans qu'il tourne.
Je viens d'en terminer la conversion en Python pour le faire fonctionner sous linux.
Il fonctionne dans un terminal et s'il ne tenait qu'à moi, il resterait dans le terminal.
---
Mais bon, on a toujours envie d'aller voir à côté (je n'ai pas dis "plus loin"...).
Alors, à temps perdu, j'explore Tkinter. Qqn a dit que ce module graphique est moche.
Moche en quoi ? Moi, je trouve qu'il fonctionne bien. Très bien, même !
---
Avant, sous Windows, j'étais sous Delphi 4.
Maintenant, avec Python, je n'ai pas de EDI.  ...et je m'en passe très bien.
Au moins, je sais ce qu'il y a dans mon code-source, parce que j'ai dû me le "taper".
En finale, c'est un +
---
Bien sûr, c'est mon avis, il n'engage que moi.
Amicalement !   -JJ-

Hors ligne

#3 Le 23/07/2008, à 18:56

Link31

Re : [RESOLU] IDE Eric 4 (et Qt designer): mais comment ça marche????

Oui, c'est mieux de savoir tout coder à la main. Mais un concepteur d'interface devient très utile pour des gros projets.

Pour répondre à la question : on obtient donc un fichier source à partir du .ui. En C++, il faut inclure le .h ainsi généré, et créer une nouvelle classe qui dérive de QWidget (héritage public) et de la classe contenue dans le .h (héritage privé). Puis il faut appeler setupUi(this); dans le constructeur de cette nouvelle classe.
En Python, je ne sais pas précisément comment ça se passe, mais ça doit être très similaire.

Dans tous les cas, il faut quand même écrire du code.

edit : je parle de Qt4 (c'est peut-être pareil en Qt3).

Dernière modification par Link31 (Le 23/07/2008, à 18:57)

Hors ligne

#4 Le 24/07/2008, à 12:26

Cyman

Re : [RESOLU] IDE Eric 4 (et Qt designer): mais comment ça marche????

@Jean-Julien: je suis d'accord que tout coder à la main permet d'avoir une meilleure maitrise de son code. Ceci dit, mon but n'est pas de faire une GUI mais plutôt d'agrémenter ma petite appli d'une GUI pour que ce soit plus joli. Et c'est aussi l'occasion d'apprendre à me servir de nouveaux outils. A la base je travaillais aussi sans IDE (J'utilisais Kate qui me va très bien comme éditeur de texte et de code) mais l'intérêt d'un IDE tel que Eric ou Kdevelop est de faciliter l'intégration de GUI, c'est uniquement pour cela que j'ai fait ce choix.

@Link31: ce que tu décris correspond au principe global de l'utilisation d'un .ui dans un langage (qu'il soit C++ ou Python) ; princie que j'ai compris mais ma question porte plus sur les manips à faire dans Eric. Grosso-modo je n'arrive pas à trouver ces fonctionnalités dans l'outil.

Compte tenu du peu de ressources de documentaires sur l'utilisation d'Eric 4, je pense que je vais tenter de me rabattre sur Eric3 couplé avec Qt3 puisque je trouve de la doc pour ces versions. En espérant que j'aurais plus de succès lol

Je posterais ici le résultat de cette nouvelle tentative tongue

En tous cas merci pour vos réponses! smile

Dernière modification par Cyman (Le 24/07/2008, à 12:48)

Hors ligne

#5 Le 26/07/2008, à 09:43

atlante

Re : [RESOLU] IDE Eric 4 (et Qt designer): mais comment ça marche????

Salut,
perso j'utilise Qt4Designer pour créer les interfaces et Kwrite pour les fichiers python (jamais pu me faire à kate...)
Après, quand tu sais ce que tu dois faire avec les fichiers, c'est simple.Mais si on ne te le dit pas, ça ne s'invente pas.
- Transformer le fichier .ui en .py avec pyuic4 interface.ui > interface.py
- Importer l'interface dans ton fichier python avec from interface import taclasse
- utiliser les fonctions de ta classe dans ton programme pour accéder aux composants et connecter les actions.
Eric cherche tellement (AMHA) à simplifier les choses que tu ne sais plus ce qu'il fait. Du coup, tu fais sans comprendre, et tu ne vas pas aussi loin que tu aurais pu aller sans (dans la création aussi)

Hors ligne

#6 Le 27/07/2008, à 22:48

Cyman

Re : [RESOLU] IDE Eric 4 (et Qt designer): mais comment ça marche????

Salut atlante,

Merci pour ces conseils que j'ai pu vérifier avant de lire ton message. A force d'insister et de lire des tutos, j'ai fini par comprendre ce que faisait la dernière version d'Eric (la 4) par rapport à ce qui m'étais indiqué dans les tutos pour Eric3: à partir du fichier .ui, Eric permet, avec la compilation du fichier, de crée directement le fichier nom_de_ma_gui_ui.py sauf qu'il le nomme Ui_nom_de_ma_GUI.py ().  Ensuite, toujours à partir du fichier .ui, en choisissant de générer le code de la classe, il crée tout seul la sous classe et permet également de générer le squelette de code des méthodes qui s'éxécuteront pour chaque élément de la GUI. big_smile
C'est pas si compliqué, mais ça m'a pris un temps fou de le comprendre...:rolleyes: On dira que je n'étais pas assez concentrée dans mes lectures.
Donc je suis arrivée à bout de mes soucis avec Eric4 et Qt4. Ceci dit, je vais continuer car ça m'apprend beaucoup et en parallèle je fais la même chose mais "manuellement".

Bref maintenant, que j'ai franchi cette étape, je me tape la doc qt4 pour savoir quelles sont les méthodes de chacun des widgets de ma GUI... Le chemin est long mais je ne lacherai pas l'affaire!

D'ailleurs si quelqu'un a un exemple de code python/qt utilisant des listview ou des listwidgets.;)  Actuellement je cherche comment initialiser un objet de classe listview ou listwidget avec des items lus à partir d'un fichier...

Le combat continue!! lol

Hors ligne

#7 Le 28/07/2008, à 16:23

atlante

Re : [RESOLU] IDE Eric 4 (et Qt designer): mais comment ça marche????

un exemple hors contexte:

        self.ui.listWidget.clear()
                    
        partages = os.listdir(emplacement_web)
        partages = sorted(partages)
        try:
            for partage in partages:
                if os.path.isdir(str(emplacement_web)+'/'+str(partage)) and not partage[0] == "." :
                    partage = partage.decode('utf8').encode('latin1')
                    self.ui.listWidget.addItem(str(partage))
        except TypeError:
            message = u"Erreur à la récupération des partages"
            print message 
            self.ui.listWidget.addItem(str(message.decode('utf8').encode('latin1')))
            self.ui.listWidget.setEnabled(0)

Tu as aussi www.koders.com qui est super pour trouver des bouts de codes que tu peux décortiquer pour comprendre ce qui se passe.

PS: ton adresse msn est annoncée comme non valide...

Hors ligne

#8 Le 28/07/2008, à 20:35

aleph

Re : [RESOLU] IDE Eric 4 (et Qt designer): mais comment ça marche????

if os.path.isdir(str(emplacement_web)+'/'+str(partage)) and not partage[0] == "." :

Probablement une des erreurs (abus?) les plus courantes en Python. Pour concaténer, des chemins, des fichiers ou autres adresses de seveur, on utilise

join( path1[, path2[, ...]])  du module os.path

quelle que soit la plaforme.

Exemple, w2k

>>> 
>>> import os.path
>>> #le chemin de cette application
>>> p1 = os.getcwd()
>>> p1
'C:\\jm\\jmpy\\psi\\psi86'
>>> #un fichier dans ce répertoire
>>> f = 'psizero.py'
>>> f
'psizero.py'
>>> r = os.path.join(p1, f)
>>> r
'C:\\jm\\jmpy\\psi\\psi86\\psizero.py'
>>> os.path.isfile(r)
True

-------------

Autre remarque, les codages/decodages sont faux et l'utilisation de str() n'a aucun sens.

message = u"Erreur à la récupération des partages"

message est un string de type unicode qui n'est pas codé en utf-8 quelles que soient
- la plateforme : Linux, Windows, Solaris...
- le codage de sauvegarde du script
- l'en-tête : -*- coding: xxx -*-
pour les versions de Python 2.*

#9 Le 28/07/2008, à 20:55

Cyman

Re : [RESOLU] IDE Eric 4 (et Qt designer): mais comment ça marche????

Super! Je vais voir ça de suite, merci smile
Et j'ai corrigé la petite erreur de frappe dans mon pseudo msn tongue

Hors ligne

#10 Le 13/08/2008, à 12:28

Cyman

Re : [RESOLU] IDE Eric 4 (et Qt designer): mais comment ça marche????

Juste pour dire qu'en ayant pris le temps de me poser et de potasser la doc de TrollTech, je m'en suis très bien sorti pour le dev de ma petite appli. C'est pas encore tout à fait fini pour cause de déménagement mais dès que c'est finalisé, je le mettrais à dispo.

Et merci pour votre aide! big_smile

Hors ligne