Blame platform-demos/fr/button.py.page

Packit 1470ea
Packit 1470ea
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" xmlns:xi="http://www.w3.org/2001/XInclude" type="guide" style="task" id="button.py" xml:lang="fr">
Packit 1470ea
  <info>
Packit 1470ea
    <title type="text">Button (Python)</title>
Packit 1470ea
    <link type="guide" xref="beginner.py#buttons"/>
Packit 1470ea
    <link type="seealso" xref="signals-callbacks.py"/>
Packit 1470ea
    <link type="next" xref="linkbutton.py"/>
Packit 1470ea
    <revision version="0.2" date="2012-05-05" status="draft"/>
Packit 1470ea
Packit 1470ea
    <credit type="author copyright">
Packit 1470ea
      <name>Marta Maria Casetti</name>
Packit 1470ea
      <email its:translate="no">mmcasetti@gmail.com</email>
Packit 1470ea
      <years>2012</years>
Packit 1470ea
    </credit>
Packit 1470ea
Packit 1470ea
    <desc>Un bouton qui émet un signal quand il est cliqué</desc>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Luc Rebert,</mal:name>
Packit 1470ea
      <mal:email>traduc@rebert.name</mal:email>
Packit 1470ea
      <mal:years>2011</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Alain Lojewski,</mal:name>
Packit 1470ea
      <mal:email>allomervan@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2011-2012</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Luc Pionchon</mal:name>
Packit 1470ea
      <mal:email>pionchon.luc@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2011</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Bruno Brouard</mal:name>
Packit 1470ea
      <mal:email>annoa.b@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2011-12</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Luis Menina</mal:name>
Packit 1470ea
      <mal:email>liberforce@freeside.fr</mal:email>
Packit 1470ea
      <mal:years>2014</mal:years>
Packit 1470ea
    </mal:credit>
Packit 1470ea
  </info>
Packit 1470ea
Packit 1470ea
  <title>Button</title>
Packit 1470ea
Packit 1470ea
  <media type="image" mime="image/png" src="media/button.png"/>
Packit 1470ea
  

Un bouton connecté à une fonction de rappel simple.

Packit 1470ea
Packit 1470ea
  <links type="section"/>
Packit 1470ea
Packit 1470ea
  <section id="code">
Packit 1470ea
    <title>Code utilisé pour générer cet exemple</title>
Packit 1470ea
    from gi.repository import Gtk
Packit 1470ea
import sys
Packit 1470ea
Packit 1470ea
Packit 1470ea
class MyWindow(Gtk.ApplicationWindow):
Packit 1470ea
    # a window
Packit 1470ea
Packit 1470ea
    def __init__(self, app):
Packit 1470ea
        Gtk.Window.__init__(self, title="GNOME Button", application=app)
Packit 1470ea
        self.set_default_size(250, 50)
Packit 1470ea
Packit 1470ea
        # a button
Packit 1470ea
        button = Gtk.Button()
Packit 1470ea
        # with a label
Packit 1470ea
        button.set_label("Click me")
Packit 1470ea
        # connect the signal "clicked" emitted by the button
Packit 1470ea
        # to the callback function do_clicked
Packit 1470ea
        button.connect("clicked", self.do_clicked)
Packit 1470ea
        # add the button to the window
Packit 1470ea
        self.add(button)
Packit 1470ea
Packit 1470ea
    # callback function connected to the signal "clicked" of the button
Packit 1470ea
    def do_clicked(self, button):
Packit 1470ea
        print("You clicked me!")
Packit 1470ea
Packit 1470ea
Packit 1470ea
class MyApplication(Gtk.Application):
Packit 1470ea
Packit 1470ea
    def __init__(self):
Packit 1470ea
        Gtk.Application.__init__(self)
Packit 1470ea
Packit 1470ea
    def do_activate(self):
Packit 1470ea
        win = MyWindow(self)
Packit 1470ea
        win.show_all()
Packit 1470ea
Packit 1470ea
    def do_startup(self):
Packit 1470ea
        Gtk.Application.do_startup(self)
Packit 1470ea
Packit 1470ea
app = MyApplication()
Packit 1470ea
exit_status = app.run(sys.argv)
Packit 1470ea
sys.exit(exit_status)
Packit 1470ea
Packit 1470ea
  </section>
Packit 1470ea
  
Packit 1470ea
  <section id="methods">
Packit 1470ea
    <title>Méthode utiles pour un composant graphique Button</title>
Packit 1470ea
    

In line 16 the "clicked" signal from the button is connected to the callback function do_clicked() using widget.connect(signal, callback function). See <link xref="signals-callbacks.py"/> for a more detailed explanation.

Packit 1470ea
    <list>
Packit 1470ea
      <item>

La méthode set_relief(Gtk.ReliefStyle.NONE) annule le style en relief des bordures du Gtk.Button - à l'opposé, Gtk.ReliefStyle.NORMAL le rétablit.

</item>
Packit 1470ea
      <item>

Si l'étiquette du bouton est issue de la <link href="http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html">collection d'icônes</link>, la méthode set_use_stock(True) assigne l'étiquette comme étant le nom de l'icône correspondante de la collection.

</item>
Packit 1470ea
      <item>

Pour assigner une image (par ex. une image de la collection d'images) au bouton button :

Packit 1470ea
        
Packit 1470ea
image = Gtk.Image()
Packit 1470ea
image.set_from_stock(Gtk.STOCK_ABOUT, Gtk.IconSize.BUTTON)
Packit 1470ea
button.set_image(image)
Packit 1470ea
      

Vous ne devez plus assigner d'étiquette au bouton après cela, sinon il affichera l'étiquette au lieu de l'image.

</item>
Packit 1470ea
      <item>

La fonction set_focus_on_click(False) empêche le bouton de prendre le focus quand vous cliquez dessus avec la souris. Cela peut être utile dans les barres d'outils, afin que la zone principale de l'application ne perde pas le focus clavier.

</item>
Packit 1470ea
    </list>
Packit 1470ea
  </section>
Packit 1470ea
  
Packit 1470ea
  <section id="references">
Packit 1470ea
    <title>Références API</title>
Packit 1470ea
    

Dans cet exemple, les éléments suivants sont utilisés :

Packit 1470ea
    <list>
Packit 1470ea
      <item>

<link href="http://developer.gnome.org/gtk3/unstable/GtkButton.html">GtkButton</link>

</item>
Packit 1470ea
      <item>

<link href="http://developer.gnome.org/gtk3/unstable/GtkWindow.html">GtkWindow</link>

</item>
Packit 1470ea
    </list>
Packit 1470ea
  </section>
Packit 1470ea
</page>