Blame platform-demos/es/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="es">
Packit 1470ea
  <info>
Packit 1470ea
    <title type="text">Botón (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 widget de botón que emite una señal cuando se pulsa sobre él</desc>
Packit 1470ea
  
Packit 1470ea
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
Packit 1470ea
      <mal:name>Daniel Mustieles</mal:name>
Packit 1470ea
      <mal:email>daniel.mustieles@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2011 - 2017</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>Nicolás Satragno</mal:name>
Packit 1470ea
      <mal:email>nsatragno@gmail.com</mal:email>
Packit 1470ea
      <mal:years>2012 - 2013</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>Jorge González</mal:name>
Packit 1470ea
      <mal:email>jorgegonz@svn.gnome.org</mal:email>
Packit 1470ea
      <mal:years>2011</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 widget de botón conectado a una función de retorno de llamada.

Packit 1470ea
Packit 1470ea
  <links type="section"/>
Packit 1470ea
Packit 1470ea
  <section id="code">
Packit 1470ea
    <title>Código usado para generar este ejemplo</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étodos útiles para un widget «Button»</title>
Packit 1470ea
    

En la línea 16, la señal «clicked» del botón se conecta a la función de retorno de llamada do_clicked() usando widget.connect(señal, función de retorno de llamada). Consulte la <link xref="signals-callbacks.py"/> para obtener una explicación más detallada.

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

set_relief(Gtk.ReliefStyle.NONE) establece el estilo de relieve de los bordes del «Gtk.Button» a «ninguno», opuesto a Gtk.ReliefStyle.NORMAL.

</item>
Packit 1470ea
      <item>

Si la etiqueta de un botón es un <link href="http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html">icono del almacén</link>, set_use_stock(True) establece la etiqueta al nombre del icono del almacén correspondiente.

</item>
Packit 1470ea
      <item>

Para establecer una imagen (por ejemplo, una imagen del almacén) para el botón 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
      

No debe establecer una etiqueta para el botón después de esto, ya que si lo hace mostrará la etiqueta y no la imagen.

</item>
Packit 1470ea
      <item>

Si usa set_focus_on_click(False), el botón no atrapará el foco cuando el ratón lo pulse. Esto podría ser útil en lugares como barras de herramientas, para que el foco del teclado no se quite del área principal de la aplicación.

</item>
Packit 1470ea
    </list>
Packit 1470ea
  </section>
Packit 1470ea
  
Packit 1470ea
  <section id="references">
Packit 1470ea
    <title>Referencias de la API</title>
Packit 1470ea
    

En este ejemplo se usa lo siguiente:

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>