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

Packit 1470ea
Packit 1470ea
Packit 1470ea
      xmlns:its="http://www.w3.org/2005/11/its"
Packit 1470ea
      xmlns:xi="http://www.w3.org/2001/XInclude"
Packit 1470ea
      type="guide" style="task"
Packit 1470ea
      id="button.py">
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>A button widget which emits a signal when clicked</desc>
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
  

A button widget connected to a simple callback function.

Packit 1470ea
Packit 1470ea
  <links type="section" />
Packit 1470ea
Packit 1470ea
  <section id="code">
Packit 1470ea
    <title>Code used to generate this example</title>
Packit 1470ea
    <xi:include href="samples/button.py" parse="text"><xi:fallback/></xi:include>
Packit 1470ea
  </section>
Packit 1470ea
  
Packit 1470ea
  <section id="methods">
Packit 1470ea
    <title>Useful methods for a Button widget</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>

set_relief(Gtk.ReliefStyle.NONE) sets to none the relief style of the edges of the Gtk.Button - as opposed to Gtk.ReliefStyle.NORMAL.

</item>
Packit 1470ea
      <item>

If the label of the button is a <link href="http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html">stock icon</link>, set_use_stock(True) sets the label as the name of the corresponding stock icon.

</item>
Packit 1470ea
      <item>

To set an image (e.g. a stock image) for the button 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
      

You should not set a label for the button after this, otherwise it will show the label and not the image.

</item>
Packit 1470ea
      <item>

If we use set_focus_on_click(False) the button will not grab focus when it is clicked by the mouse. This could be useful in places like toolbars, so that the keyboard focus is not removed from the main area of the application.

</item>
Packit 1470ea
    </list>
Packit 1470ea
  </section>
Packit 1470ea
  
Packit 1470ea
  <section id="references">
Packit 1470ea
    <title>API References</title>
Packit 1470ea
    

In this sample we used the following:

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>