Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
FORUM PYTHON F.A.Q PYTHON TUTORIELS PYTHON SOURCES PYTHON OUTILS PYTHON LIVRES PYTHON
9.2. Les flèches

9.2. Les flèches

Le widget gtk.Arrow consiste en une tête de flèche pouvant pointer dans différentes directions et à laquelle on peut appliquer un certain nombre de styles. Dans beaucoup d'applications, ce widget se révèlera très utile une fois placé à l'intérieur d'un bouton. A l'instar des étiquettes, il n'émet pas de signaux.

Pour manipuler les flèches, il n'y a que deux appels :

  fleche = gtk.Arrow(arrow_type, shadow_type)

  fleche.set(arrow_type, shadow_type)

Le premier crée une flèche, en prenant en compte le type et le style demandés. Le second appel permet de modifier ces valeurs après la création. L'argument arrow_type (type de flèche) peut prendre l'une des valeurs suivantes :

  ARROW_UP		# haut
  ARROW_DOWN		# bas
  ARROW_LEFT		# gauche#!/usr/bin/env python
  ARROW_RIGHT		# droite

Ces valeurs indiquent évidemment la direction dans laquelle pointera la flèche. Les valeurs possibles pour l'argument shadow_type (type d'ombre) sont :

  SHADOW_IN		# empreinte	
  SHADOW_OUT		# relief (par défaut)
  SHADOW_ETCHED_IN	# contour en empreinte
  SHADOW_ETCHED_OUT	# contour en relief

Le programme exemple fleches.py donne un aperçu de l'utilisation du widget gtk.Arrow. La Figure 9.2 montre la fenêtre que l'on obtient au lancement du programme :

Figure 9.2. Exemple de boutons avec flèches

exemple de flèche

Voici le code source de fleches.py  :

     1   #!/usr/bin/env python
     2   
     3   # exemple fleches.py
     4   
     5   import pygtk
     6   pygtk.require('2.0')
     7   import gtk
     8   
     9   # On cree une fleche avec les parametres specifies
    10   # et on la place dans un bouton
    11   def cree_fleche_bouton(type, ombre):
    12       bouton = gtk.Button();
    13       fleche = gtk.Arrow(type, ombre);
    14       bouton.add(fleche)
    15       bouton.show()
    16       fleche.show()
    17       return bouton
    18   
    19   class Fleches:
    20       def __init__(self):
    21           # Creation d'une fenetre
    22           fenetre = gtk.Window(gtk.WINDOW_TOPLEVEL)
    23   
    24           fenetre.set_title("Fleches dans boutons")
    25   
    26           # C'est une bonne idee de faire ceci pour chaque fenetre
    27           fenetre.connect("destroy", gtk.main_quit)
    28   
    29           # On fixe la largeur des bordures de la fenetre
    30           fenetre.set_border_width(10)
    31   
    32           # On cree une boite pour contenir les boutons/fleches
    33           boite = gtk.HBox(False, 0)
    34           boite.set_border_width(2)
    35           fenetre.add(boite)
    36   
    37           # On place et on affiche tous nos widgets
    38           boite.show()
    39   
    40           bouton = cree_fleche_bouton(gtk.ARROW_UP, gtk.SHADOW_IN)
    41           boite.pack_start(bouton, False, False, 3)
    42   
    43           bouton = cree_fleche_bouton(gtk.ARROW_DOWN, gtk.SHADOW_OUT)
    44           boite.pack_start(bouton, False, False, 3)
    45     
    46           bouton = cree_fleche_bouton(gtk.ARROW_LEFT, gtk.SHADOW_ETCHED_IN)
    47           boite.pack_start(bouton, False, False, 3)
    48     
    49           bouton = cree_fleche_bouton(gtk.ARROW_RIGHT, gtk.SHADOW_ETCHED_OUT)
    50           boite.pack_start(bouton, False, False, 3)
    51     
    52           fenetre.show()
    53   
    54   def main():
    55       gtk.main()
    56       return 0
    57   
    58   if __name__ == "__main__":
    59       Fleches()
    60       main()
Responsable bénévole de la rubrique Python : Guillaume Duriaud - Contacter par EMail :
Vos questions techniques : forum d'entraide Python - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.