#1 Le 09/02/2011, à 18:09
- msg_dracula
[Résolu] Glade3, problème de compréhension avec boite de dialogue
Bonjour,
Je commence à apprendre la création d'interface graphique avec Glade3 et python
Souhaitant faire une boite de dialogue "A propos", il y a une chose que je n'arrive pas a comprendre. J'ai un dialog-action_area1 avec un bouton fermer. Je peux rajouter des boutons et leur attribuer une gestion des signaux, mais je n'arrive pas a le faire avec le bouton "Fermer".
Donc la question est, Comment attribuer une action a ce bouton "Fermer" pour bien sur fermer la fenêtre en question ?
Merci
Dernière modification par msg_dracula (Le 10/02/2011, à 01:24)
Apprend de tes propres erreurs.
StaticGen : Vous ne bloguerez plus jamais comme avant
Hors ligne
#2 Le 09/02/2011, à 19:26
- feuloren
Re : [Résolu] Glade3, problème de compréhension avec boite de dialogue
Tu dois connecter le signal "response" émit par GtkDialog et tester si l'id donnée avec le signal est celle de ton bouton.
Je ne suis pas sur de la valeur retournée par le bouton fermer de ce dialogue mais tu peux toujours essayé gtk.RESPONSE_CLOSE
Hors ligne
#3 Le 10/02/2011, à 01:23
- msg_dracula
Re : [Résolu] Glade3, problème de compréhension avec boite de dialogue
Merci, après quelques recherches, j'y suis arrivé.
self.about = self.wTree.get_widget("apropos")
self.about.show()
reponse = self.about.run()
if reponse == gtk.RESPONSE_DELETE_EVENT or reponse == gtk.RESPONSE_CANCEL:
self.about.destroy()
ET voila, ça marche.
Merci
Apprend de tes propres erreurs.
StaticGen : Vous ne bloguerez plus jamais comme avant
Hors ligne
#4 Le 11/02/2011, à 16:42
- cenwen
Re : [Résolu] Glade3, problème de compréhension avec boite de dialogue
Bonjour,
Désolé de m'imisser dans ce post mais, par rapport à ton dernier commentaire, je vois que tu utilises encore libglade et non Gtkbuilder. Quand Gnome 3 (cad bientot) sortiera ton application ne fonctionnera plus. Ne serait-il pas judicieux de prendre pour habitude (surtout quand on commence ) d'utiliser la bonne librairie. Je dis ça car j'ai été confronté à la même chose il y a quelques temps.
self.about = self.interface.get_object("apropos")
Le reste étant identique.
Je tiens à preciser que moi aussi je ne suis qu'un débutant.
Dernière modification par cenwen (Le 11/02/2011, à 17:50)
Le jour où j'ai découvert le libre, j'ai su que je ne reviendrais jamais en arrière.
The OpenShot Team : http://www.openshotvideo.com/
Mon blog perso sur le multimédia et OpenShot : http://linuxevolution.wordpress.com/
Google+ : https://plus.google.com/u/0/111472725110173916234/posts
Hors ligne
#5 Le 11/02/2011, à 19:19
- msg_dracula
Re : [Résolu] Glade3, problème de compréhension avec boite de dialogue
interessant ça !! merci du conseil.
Bon ben j'ai plus qu'a faire le test avec gtkbuilder
Merci encore
Apprend de tes propres erreurs.
StaticGen : Vous ne bloguerez plus jamais comme avant
Hors ligne
#6 Le 11/02/2011, à 19:22
- cenwen
Re : [Résolu] Glade3, problème de compréhension avec boite de dialogue
Oui mais ce n'est pas tout ce qu'il y a à faire. Tu dois revoir toute la partie des widgets. Par contre, comme tu commences ton appli ( c'est bien ça ? ), tu prendras de bonnes habitudes sans te mélanger trop les pinceaux;
Dernière modification par cenwen (Le 11/02/2011, à 19:28)
Le jour où j'ai découvert le libre, j'ai su que je ne reviendrais jamais en arrière.
The OpenShot Team : http://www.openshotvideo.com/
Mon blog perso sur le multimédia et OpenShot : http://linuxevolution.wordpress.com/
Google+ : https://plus.google.com/u/0/111472725110173916234/posts
Hors ligne
#7 Le 11/02/2011, à 19:35
- cenwen
Re : [Résolu] Glade3, problème de compréhension avec boite de dialogue
Tiens voici un exemple :
#!/usr/bin/env python
#-*- coding: utf8 -*-
import pygtk
pygtk.require("2.0")
import gtk
class HelloWorld:
def __init__(self):
interface = gtk.Builder()
interface.add_from_file("Hello-World-Zero.glade")
self.myLabel = interface.get_object("myLabel")
interface.connect_signals(self)
def on_mainWindow_destroy(self, widget):
gtk.main_quit()
def on_myButton_clicked(self, widget):
self.myLabel.set_text("ZeroTutoriel")
if __name__ == "__main__":
HelloWorld()
gtk.main()
Et voici le fichier Glade correspondant :
<?xml version="1.0"?>
<interface>
<requires lib="gtk+" version="2.16"/>
<!-- interface-naming-policy project-wide -->
<object class="GtkWindow" id="mainWindow">
<property name="visible">True</property>
<property name="title" translatable="yes">Hello word !</property>
<property name="window_position">center</property>
<signal name="destroy" handler="on_mainWindow_destroy"/>
<child>
<object class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<child>
<object class="GtkLabel" id="myLabel">
<property name="visible">True</property>
<property name="label" translatable="yes">Hello</property>
</object>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="myButton">
<property name="label" translatable="yes">ZeroTutoriel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="on_myButton_clicked"/>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</interface>
tu trouveras beaucoup d'informations (et de tutoriels sur Python et PyGTK) sur le plus grand site francophone de programmation ici : Le site du Zero
Le jour où j'ai découvert le libre, j'ai su que je ne reviendrais jamais en arrière.
The OpenShot Team : http://www.openshotvideo.com/
Mon blog perso sur le multimédia et OpenShot : http://linuxevolution.wordpress.com/
Google+ : https://plus.google.com/u/0/111472725110173916234/posts
Hors ligne