logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:programmation:python:boutonfermer [26/10/2013 14:57]
MicP Ajout d'un lien vers le forum
doc:programmation:python:boutonfermer [25/04/2023 21:50] (Version actuelle)
bendia [Comment faire un notebook avec bouton "fermer"] Tag obsolète (GTK2.) et python 2
Ligne 1: Ligne 1:
 ====== Comment faire un notebook avec bouton "​fermer"​ ====== ====== Comment faire un notebook avec bouton "​fermer"​ ======
-  * Le retour sur le forum est ici : [[http://​debian-facile.org/​viewtopic.php?​id=31 | Lien vers le forum concernant ce tuto]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) 
  
- --- //Script créé ​par Syeric//+  * Objet : Script Python - Comment faire un notebook avec bouton "​fermer"​ 
 +  * Niveau requis :​{{tag>​débutant avisé}} 
 +  * Commentaires : // programmer un bouton "​fermer"​ en python avec la bibliothèque graphique GTK // 
 +  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-
 +  * Suivi : {{tag>​obsolète}} 
 +    * Création par [[user>​syeric]] le 02/06/2007 
 +    * Testé ​par [[user>​paskal]] le 25/10/2015 
 +  * Commentaires sur le forum : [[http://​debian-facile.org/viewtopic.php?​id=31 |C'est ici]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) 
  
 +===== Présentation =====
    
 Salut ! Salut !
Ligne 11: Ligne 18:
 Voici le script : Voici le script :
  
-    ​#​!/​usr/​bin/​env python +<file python notebook.py>​#​!/​usr/​bin/​env python 
-    # -*- coding:​utf-8 -*- +# -*- coding:​utf-8 -*- 
-    #  notebook.py + 
-    import pygtk +#  notebook.py 
-    pygtk.require('​2.0'​) + 
-    import gtk +import pygtk 
-    class NotebookExample:​ +pygtk.require('​2.0'​) 
-        def add_icon_to_button(self,​button):​ +import gtk 
-        "​Fonction pour ajouter un bouton fermer"​ + 
-    ​#création d'une boite horizontale +class NotebookExample:​ 
-        iconBox = gtk.HBox(False,​ 0)   ​ + 
-    #Création ​d'une image vide     ​+##  fonction pour ajouter un bouton fermer 
 +    ​def add_icon_to_button(self,​button):​ 
 +  # création d'une boite horizontale 
 +        iconBox = gtk.HBox(False,​ 0)   
 +  création ​d'une image vide    
         image = gtk.Image()         image = gtk.Image()
-    ​#On récupère l'​icone du bouton "​fermer"​+  ​on récupère l'​icone du bouton "​fermer"​
         image.set_from_stock(gtk.STOCK_CLOSE,​gtk.ICON_SIZE_MENU)         image.set_from_stock(gtk.STOCK_CLOSE,​gtk.ICON_SIZE_MENU)
-    ​#On enlève le relief au bouton (donné en attribut)+  ​on enlève le relief au bouton (donné en attribut)
         gtk.Button.set_relief(button,​gtk.RELIEF_NONE)         gtk.Button.set_relief(button,​gtk.RELIEF_NONE)
-    ​#On récupère les propriétés du bouton+  ​on récupère les propriétés du bouton
         settings = gtk.Widget.get_settings(button)         settings = gtk.Widget.get_settings(button)
-    ​#On affecte à w et h les dimensions+  ​on affecte à w et h les dimensions
         (w,h) = gtk.icon_size_lookup_for_settings(settings,​gtk.ICON_SIZE_MENU)         (w,h) = gtk.icon_size_lookup_for_settings(settings,​gtk.ICON_SIZE_MENU)
-    ​#On modifie ces dimensions+  ​on modifie ces dimensions
         gtk.Widget.set_size_request(button,​ w + 4, h + 4)         gtk.Widget.set_size_request(button,​ w + 4, h + 4)
         image.show()         image.show()
-    ​#On met l'​image dans la boite+  ​on met l'​image dans la boite
         iconBox.pack_start(image,​ True, False, 0)         iconBox.pack_start(image,​ True, False, 0)
-    ​#On ajoute la boite dans le bouton+  ​on ajoute la boite dans le bouton
         button.add(iconBox)         button.add(iconBox)
         iconBox.show()         iconBox.show()
-        return ​+        return 
 + 
 + 
 +##  crée une tab customisée avec un label et un bouton fermer
     def create_custom_tab(self,​text,​ notebook, frame):     def create_custom_tab(self,​text,​ notebook, frame):
-        "Crée une tab customisée avec un label et un bouton fermer"​ +  ​on crée une eventbox
-    ​#On crée une eventbox+
         eventBox = gtk.EventBox()         eventBox = gtk.EventBox()
-    ​#On crée une boite horizontale+  ​on crée une boite horizontale
         tabBox = gtk.HBox(False,​ 2)         tabBox = gtk.HBox(False,​ 2)
-    ​#On crée un label "​text"​ (text donné en attribut)+  ​on crée un label "​text"​ (text donné en attribut)
         tabLabel = gtk.Label(text)         tabLabel = gtk.Label(text)
-    ​#On crée un bouton +  ​on crée un bouton 
-        tabButton=gtk.Button() +        tabButton = gtk.Button() 
-    #On lui affecte la méthode remove_book+  on lui affecte la méthode remove_book
         tabButton.connect('​clicked',​self.remove_book,​ notebook, frame)         tabButton.connect('​clicked',​self.remove_book,​ notebook, frame)
-        ​#On ajoute l'​image au bouton en utilisant la méthode add_icon_to_button +  ​on ajoute l'​image au bouton en utilisant la méthode add_icon_to_button 
-        self.add_icon_to_button(tabButton) ​             +        self.add_icon_to_button(tabButton)
         eventBox.show()         eventBox.show()
         tabButton.show()         tabButton.show()
         tabLabel.show()         tabLabel.show()
-    ​#On attache label et bouton à la boite +  ​on attache label et bouton à la boite 
-        tabBox.pack_start(tabLabel,​ False) ​      ​+        tabBox.pack_start(tabLabel,​ False) ​     
         tabBox.pack_start(tabButton,​ False)         tabBox.pack_start(tabButton,​ False)
         tabBox.show_all()         tabBox.show_all()
-    ​#On ajoute la boite à l'​eventbox+  ​on ajoute la boite à l'​eventbox
         eventBox.add(tabBox)         eventBox.add(tabBox)
-        return eventBox ​     +        return eventBox 
 +    
 + 
 +##  fonction de suppression de page
     def remove_book(self,​ button, notebook, frame):     def remove_book(self,​ button, notebook, frame):
-    "​Fonction de suppression de page"​ +  ​on supprime la page. Le secret, c'est de donner comme argument le widget enfant de la page, ici un cadre frame.
-    ​#On supprime la page. Le secret, c'est de donner comme argument le widget enfant de la page, ici un cadre frame.+
         notebook.remove(frame)         notebook.remove(frame)
-        ​On actualise le widget+  ​on actualise le widget
         notebook.queue_draw_area(0,​0,​-1,​-1)         notebook.queue_draw_area(0,​0,​-1,​-1)
 +
     def delete(self,​ widget, event=None):​     def delete(self,​ widget, event=None):​
         gtk.main_quit()         gtk.main_quit()
         return False         return False
 +
     def __init__(self):​     def __init__(self):​
         window = gtk.Window(gtk.WINDOW_TOPLEVEL)         window = gtk.Window(gtk.WINDOW_TOPLEVEL)
         window.connect("​delete_event",​ self.delete)         window.connect("​delete_event",​ self.delete)
         window.set_border_width(10)         window.set_border_width(10)
-        ​#On crée un nouveau notebook+ 
 +        ​on crée un nouveau notebook
         notebook = gtk.Notebook()         notebook = gtk.Notebook()
         window.add(notebook)         window.add(notebook)
         notebook.show()         notebook.show()
-        ​On ajoute quelques pages+ 
 +        ​on ajoute quelques pages
         for i in range(5):         for i in range(5):
             page_number = i + 1             page_number = i + 1
Ligne 91: Ligne 110:
             label = gtk.Label("​Dans la Frame %d" % page_number)             label = gtk.Label("​Dans la Frame %d" % page_number)
             frame.add(label)             frame.add(label)
-            label.show() ​+            label.show() 
 +           
             eventBox = self.create_custom_tab("​Tab %d" % page_number,​ notebook, frame)             eventBox = self.create_custom_tab("​Tab %d" % page_number,​ notebook, frame)
             notebook.append_page(frame,​ eventBox)             notebook.append_page(frame,​ eventBox)
-        # Page que nous verrons à l'​ouverture (page 4)+        # page que nous verrons à l'​ouverture (page 4)
         notebook.set_current_page(3)         notebook.set_current_page(3)
         window.show()         window.show()
-    ​def main():+ 
 +def main():
     gtk.main()     gtk.main()
-    return  +    return ​
-    if __name__ == "​__main__":​+ 
 +if __name__ == "​__main__":​ 
     NotebookExample()     NotebookExample()
-    ​main()+ 
 +    ​main()</​file>​ 
  
 Et vous obtenez : Et vous obtenez :
  
-{{http://​images.debian-facile.org/​manuel/​boutonfermer.png|}}+{{/​manuel/​boutonfermer.png|}}
  
  
doc/programmation/python/boutonfermer.1382792270.txt.gz · Dernière modification: 26/10/2013 14:57 par MicP

Pied de page des forums

Propulsé par FluxBB