Glade+Python+XML : Création dynamique de GUI

Le
Doug713705
Bonjour à toutes, tous,

J'essaye de coder une petite application qui charge un fichier XML qui
permettra de construire en partie l'interface graphique.

L'idée n'est pas de dessiner l'interface graphique complète dans ce
fichier XML (pour ça j'utilise glade3) mais de fournir à l'application
des données et d'adapter l'interface en fonction de ces données.

Par exemple et pour faire simple :
- J'ai créé une interface graphique avec Glade3 (Un bouton, un panneau
vide et une liste vide).
- J'ai créé un fichier XML simple contenant les données suivantes
(exemple totalement bidon) :

<object name='mon objet'>
<property name='couleur'>vert</property>
<property name='forme'>rond</property>
</object>
<object name='mon 2e objet'>
<property name='couleur'>bleu</property>
<property name='forme'>triangle</property>
</object>

Ce que je cherche à faire :
- Afficher ces objets dans l'interface graphique dans une liste (peupler
la liste à partir des données du fichier XML).
- Pour chaque objet, créer un bouton (ou tout autre widget) du nom de
l'objet dans le panneau de l'application.

Evidemment le nombre de données est totalement variable.

Je suppose que c'est possible mais je n'ai pas trouvé comment et je me
tourne vers ce groupe pour obtenir des réponses ou un lien vers un
tutoriel qui expliquerait tout ça.

D'ailleurs, Glade est-il le bon outil pour ce genre de chose ?

Merci de rediriger s'il existe un forum est plus adapté.
--
Tu fais semblant de rien, tu craques ta mélanco de 4 à 5 heures du
matin au fond des caboulots. Et tu remontes à contrec½ur l'escalier de
service. Tu voudrais qu'y ait des ascenseurs au fond des précipices.
(H.F.T. Mathématiques souterraines)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
NicolasP
Le #22498361
Bonjour,

Bonjour à toutes, tous,

J'essaye de coder une petite application qui charge un fichier XML qui
permettra de construire en partie l'interface graphique.

L'idée n'est pas de dessiner l'interface graphique complète dans ce
fichier XML (pour ça j'utilise glade3) mais de fournir à l'application
des données et d'adapter l'interface en fonction de ces données.

Par exemple et pour faire simple :
- J'ai créé une interface graphique avec Glade3 (Un bouton, un panneau
vide et une liste vide).
- J'ai créé un fichier XML simple contenant les données suivantes
(exemple totalement bidon) :

<object name='mon objet'>
<property name='couleur'>vert</property>
<property name='forme'>rond</property>
</object>
<object name='mon 2e objet'>
<property name='couleur'>bleu</property>
<property name='forme'>triangle</property>
</object>

Ce que je cherche à faire :
- Afficher ces objets dans l'interface graphique dans une liste (peupler
la liste à partir des données du fichier XML).
- Pour chaque objet, créer un bouton (ou tout autre widget) du nom de
l'objet dans le panneau de l'application.


Créer un bouton avec le nom de l'objet ?
Pourquoi pas. Mais il fera quoi ce bouton ?


Evidemment le nombre de données est totalement variable.

Je suppose que c'est possible mais je n'ai pas trouvé comment et je me
tourne vers ce groupe pour obtenir des réponses ou un lien vers un
tutoriel qui expliquerait tout ça.

D'ailleurs, Glade est-il le bon outil pour ce genre de chose ?



Je ne connais pas Glade, donc je ne peux pas aider sur ce point.
Par contre, avec wxPython, c'est possible.

Merci de rediriger s'il existe un forum est plus adapté.




Nicolas
Doug713705
Le #22498611
Le 24/8/2010 08:31 dans fr.comp.lang.python NicolasP nous expliquait:

<object name='mon objet'>
<property name='couleur'>vert</property>
<property name='forme'>rond</property>
</object>
<object name='mon 2e objet'>
<property name='couleur'>bleu</property>
<property name='forme'>triangle</property>
</object>

Ce que je cherche à faire :
- Afficher ces objets dans l'interface graphique dans une liste (peupler
la liste à partir des données du fichier XML).
- Pour chaque objet, créer un bouton (ou tout autre widget) du nom de
l'objet dans le panneau de l'application.


Créer un bouton avec le nom de l'objet ?
Pourquoi pas. Mais il fera quoi ce bouton ?



Quelle importance ? Le bouton pourrait par exemple être étiqueté "mon
objet" et ouvrir une popup affichant "Vert" quand on clique dessus et
avoir une infobulle "rond" quand il est survolé.


Evidemment le nombre de données est totalement variable.

Je suppose que c'est possible mais je n'ai pas trouvé comment et je me
tourne vers ce groupe pour obtenir des réponses ou un lien vers un
tutoriel qui expliquerait tout ça.

D'ailleurs, Glade est-il le bon outil pour ce genre de chose ?



Je ne connais pas Glade, donc je ne peux pas aider sur ce point.
Par contre, avec wxPython, c'est possible.



L'avantage de glade, pour moi, est l'éditeur d'interfaces graphiques en
WYSIWYG. Existe t-il un tel éditeur pour wxPython ?

--
Et je te dis "Reviens maintenant c'est mon tour de t'offrir le voyage
pour les Galapagos.", et je te dis "Reviens on s'en va mon amour,
recoller du soleil sur nos ailes d'albatros". (H.F.T. Loreleï Sébasto
Cha)
NicolasP
Le #22498711
Le 24/08/2010 10:50, Doug713705 a écrit :
Le 24/8/2010 08:31 dans fr.comp.lang.python NicolasP nous expliquait:

<object name='mon objet'>
<property name='couleur'>vert</property>
<property name='forme'>rond</property>
</object>
<object name='mon 2e objet'>
<property name='couleur'>bleu</property>
<property name='forme'>triangle</property>
</object>

Ce que je cherche à faire :
- Afficher ces objets dans l'interface graphique dans une liste (peupler
la liste à partir des données du fichier XML).
- Pour chaque objet, créer un bouton (ou tout autre widget) du nom de
l'objet dans le panneau de l'application.


Créer un bouton avec le nom de l'objet ?
Pourquoi pas. Mais il fera quoi ce bouton ?



Quelle importance ? Le bouton pourrait par exemple être étiqueté "mon
objet" et ouvrir une popup affichant "Vert" quand on clique dessus et
avoir une infobulle "rond" quand il est survolé.


Evidemment le nombre de données est totalement variable.

Je suppose que c'est possible mais je n'ai pas trouvé comment et je me
tourne vers ce groupe pour obtenir des réponses ou un lien vers un
tutoriel qui expliquerait tout ça.

D'ailleurs, Glade est-il le bon outil pour ce genre de chose ?



Je ne connais pas Glade, donc je ne peux pas aider sur ce point.
Par contre, avec wxPython, c'est possible.



L'avantage de glade, pour moi, est l'éditeur d'interfaces graphiques en
WYSIWYG. Existe t-il un tel éditeur pour wxPython ?



http://wxformbuilder.org/
Doug713705
Le #22498901
Le 24/8/2010 11:40 dans fr.comp.lang.python NicolasP nous expliquait:

[Construction interface graphique à la volée]
D'ailleurs, Glade est-il le bon outil pour ce genre de chose ?



Je ne connais pas Glade, donc je ne peux pas aider sur ce point.
Par contre, avec wxPython, c'est possible.



L'avantage de glade, pour moi, est l'éditeur d'interfaces graphiques en
WYSIWYG. Existe t-il un tel éditeur pour wxPython ?



http://wxformbuilder.org/



Merci pour le lien, j'ai essayé d'installer ça mais ce n'est pas très
propre sur une Slackware (pas de paquet fourni et la compilation
depuis les sources fait les choses un poil trop à la hussarde).

Les "parties fixes" de l'interface de mon appli étant déjà réalisées
avec glade, pour l'heure je cherche toutjours une solution de ce coté et
je me rabattrais par dépit sur tkInter si je n'en trouvais pas.

--
Si avec Charlotte tu vas plus loin, mets de la cancoillotte sur le
traversin. Je te jure mon pote ce truc c'est dingue, ça t'fout le
vertige pour le bastringue. (H.F.T. La cancoillotte)
JeromeF
Le #22502291
On 24 août, 12:03, Doug713705
Le 24/8/2010 11:40 dans fr.comp.lang.python NicolasP nous expliquait:

[Construction interface graphique à la volée]

>>>> D'ailleurs, Glade est-il le bon outil pour ce genre de chose ?

>>> Je ne connais pas Glade, donc je ne peux pas aider sur ce point.
>>> Par contre, avec wxPython, c'est possible.

>> L'avantage de glade, pour moi, est l'éditeur d'interfaces graphiques en
>> WYSIWYG. Existe t-il un tel éditeur pour wxPython ?

>http://wxformbuilder.org/

Merci pour le lien, j'ai essayé d'installer ça mais ce n'est pas tr ès
propre sur une Slackware (pas de paquet fourni et la compilation
depuis les sources fait les choses un poil trop à la hussarde).

Les "parties fixes" de l'interface de mon appli étant déjà réalis ées
avec glade, pour l'heure je cherche toutjours une solution de ce coté e t
je me rabattrais par dépit sur tkInter si je n'en trouvais pas.

--
Si avec Charlotte tu vas plus loin, mets de la cancoillotte sur le
traversin. Je te jure mon pote ce truc c'est dingue, ça t'fout le
vertige pour le bastringue. (H.F.T. La cancoillotte)



Bonjour,

Tu as wxglade qui fonctionne bien pour générer des interfaces en
wxpython : http://wxglade.sourceforge.net/, il vient souvent
précompilé avec les différentes distrib linux. Par contre je ne suis
pas sûr de suivre ce que tu souhaites faire avec tes fichiers xml. A
partir du moment où ton interface est générée de manière automati que,
pourquoi utiliser un GUI builder ?

Pour mes applications wx je travaille souvent avec des panels. La
majorité sont créés avec wxglade manuellement et certains sont
dynamiques et créés à la volée. Le module wx.aui simplifie beaucoup la
gestion des panels.
Doug713705
Le #22502901
Le 25/8/2010 10:09 dans fr.comp.lang.python JeromeF nous expliquait:

Bonjour,

Tu as wxglade qui fonctionne bien pour générer des interfaces en
wxpython : http://wxglade.sourceforge.net/, il vient souvent
précompilé avec les différentes distrib linux.



Merci, ça a l'air pas mal, je vais y jetter un oeil.

Par contre je ne suis
pas sûr de suivre ce que tu souhaites faire avec tes fichiers xml. A
partir du moment où ton interface est générée de manière automatique,
pourquoi utiliser un GUI builder ?



L'idée est d'avoir déjà une grande partie de l'interface déjà générée et
de pouvor la moduler en fonction du besoin qui dépends des données.

Typiquement je souhaiterai ne pas avoir à coder manuellement tout ce qui
est barre de menus, cadre etc (qui resteront fixes et donc utiliser un
GUI builder), et parallèlement avoir la possibilité de générer
essentiellement des labels et des textfields, des listes et des boutons
qui représenteront le "gros" de l'interface en fonction des données
contenues dans le fichier XML.

Pour mes applications wx je travaille souvent avec des panels. La
majorité sont créés avec wxglade manuellement et certains sont
dynamiques et créés à la volée. Le module wx.aui simplifie beaucoup la
gestion des panels.



Je vais regarder ça de près.
Merci de ton aide.
--
Pas b'soin de télescope pour suivre ta beauté quand tu viens t'acharner
à me faire espérer. Mais j'suis fait d'une matière débile indélébile et
je n'sais plus quoi faire pour me rendre inutile, et je n'sais plus
quoi faire pour te décevoir. (H.F.T. Je ne sais plus quoi faire pour te
décevoir)
Bruno Desthuilliers
Le #22505621
Doug713705 a écrit :
Bonjour à toutes, tous,

J'essaye de coder une petite application qui charge un fichier XML qui
permettra de construire en partie l'interface graphique.

L'idée n'est pas de dessiner l'interface graphique complète dans ce
fichier XML (pour ça j'utilise glade3) mais de fournir à l'application
des données et d'adapter l'interface en fonction de ces données.


(snip)
Ce que je cherche à faire :
- Afficher ces objets dans l'interface graphique dans une liste (peupler
la liste à partir des données du fichier XML).
- Pour chaque objet, créer un bouton (ou tout autre widget) du nom de
l'objet dans le panneau de l'application.

Evidemment le nombre de données est totalement variable.

Je suppose que c'est possible mais je n'ai pas trouvé comment et je me
tourne vers ce groupe pour obtenir des réponses ou un lien vers un
tutoriel qui expliquerait tout ça.

D'ailleurs, Glade est-il le bon outil pour ce genre de chose ?



http://bpoussin.free.fr/doc/glade-python/c18.htm

5ème lien sur google pour "+python +gtk +glade"...
NicolasP
Le #22557011
Le 24/08/2010 13:03, Doug713705 a écrit :
Le 24/8/2010 11:40 dans fr.comp.lang.python NicolasP nous expliquait:

[Construction interface graphique à la volée]
D'ailleurs, Glade est-il le bon outil pour ce genre de chose ?



Je ne connais pas Glade, donc je ne peux pas aider sur ce point.
Par contre, avec wxPython, c'est possible.



L'avantage de glade, pour moi, est l'éditeur d'interfaces graphiques en
WYSIWYG. Existe t-il un tel éditeur pour wxPython ?



http://wxformbuilder.org/



Merci pour le lien, j'ai essayé d'installer ça mais ce n'est pas très
propre sur une Slackware (pas de paquet fourni et la compilation
depuis les sources fait les choses un poil trop à la hussarde).

Les "parties fixes" de l'interface de mon appli étant déjà réalisées
avec glade, pour l'heure je cherche toutjours une solution de ce coté et
je me rabattrais par dépit sur tkInter si je n'en trouvais pas.



Il y a aussi XRCED.
Pas besoin d'aller le chercher loin... cet outil est livré dans la distribution de wxPython pour Windows. Pour les autres systèmes, je ne sais pas.

Nicolas
Doug713705
Le #22557701
Dans fr.comp.lang.python NicolasP nous expliquait:

Les "parties fixes" de l'interface de mon appli étant déjà réalisées
avec glade, pour l'heure je cherche toutjours une solution de ce coté et
je me rabattrais par dépit sur tkInter si je n'en trouvais pas.



Il y a aussi XRCED.
Pas besoin d'aller le chercher loin... cet outil est livré dans la distribution
de wxPython pour Windows. Pour les autres systèmes, je ne sais pas.



J'ai fini par faire tout ça en tkinter qui finalement n'est pas si
complexe ni si rigide qu'il m'avait paru au premier abord.

Merci.
--
@+
Doug - Linux user #307925 - Slackware64 roulaize ;-)
[ Plus ou moins avec une chance de peut-être ]
Web Dreamer
Le #22630221
Le 23/08/10 19:56, Doug713705 a écrit :
Bonjour à toutes, tous,

J'essaye de coder une petite application qui charge un fichier XML qui
permettra de construire en partie l'interface graphique.



Je recherche un truc très similaire, construire la GUI depuis une
interface web déjà existante en html:

J'ai un (des) wizard(s) qui fonctionnent déjà en CGI (avec apache) pour
une conf de machine en remote.
Bien sûre l'interface est en xHTML,css puisque c'est un wizard web (un
genre de webmin mais plus limité).

Existe t'il un moyen de faire une GUI depuis le xHTML css, sans avoir
besoin d'un apache local (ni browser) pour avoire un outil de conf
graphique en "local" portable (web en remote, GUI integré à un desktop
local)?

google a pas trop été mon ami pour ça :-(

Le but : avoir la même appli qui fonctionne en GUI locale ou remote (web
sans VNC), sans avoir à écrire séparément l'interfcae WEB et la GUI
(avoir le moins de séparation possible dans le code).

Le BUT, par ex. sur une distro linux, avoir en local le wizard qui
configure les services et la gestion des paquetages dans une GUI si
c'est un desktop, et en remote ce wizard en web lorsqu'on n'installe pas
de desktop et qu'on en fait un serveur.

PS. je débute en python... et en GUI... :-) (j'ai plus l'habitude de
PHP, tapez pas :-) )

L'avantage de pouvoir faire une tel GUI, et de pouvoir porter plus
facilement de l'existant PHP en python, en gardant les templates xHTML
et css.

Merci :-)

--
Web Dreamer
Publicité
Poster une réponse
Anonyme