Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/exercises/es/17_boton-y-etiqueta_solucion.py
diff options
context:
space:
mode:
Diffstat (limited to 'exercises/es/17_boton-y-etiqueta_solucion.py')
-rw-r--r--exercises/es/17_boton-y-etiqueta_solucion.py78
1 files changed, 78 insertions, 0 deletions
diff --git a/exercises/es/17_boton-y-etiqueta_solucion.py b/exercises/es/17_boton-y-etiqueta_solucion.py
new file mode 100644
index 0000000..19b60d0
--- /dev/null
+++ b/exercises/es/17_boton-y-etiqueta_solucion.py
@@ -0,0 +1,78 @@
+#!/usr/bin/python
+# coding=utf-8
+
+"""Este programa debe mostrar una ventana GTK + que contiene un botón y una
+etiqueta.
+
+Debe añadir dos widgets a la caja en la ventana: un Gtk.Button y un Gtk.Label.
+
+El Gtk.Button debe mostrar el texto ‘Cambiar etiqueta’. El Gtk.Label debe
+mostrar el texto ‘Etiqueta inicial’.
+
+Después de añadir los dos widgets, debe conectar un callback a la señal
+‘clicked’ del botón. En este callback, deberá cambiar el texto de la Gtk.Label
+a ‘Etiqueta final’. Esto significa que cuando se ejecuta el programa y se pulsa
+el botón, la etiqueta debe modificar su texto.
+
+Usted puede encontrar documentación de la señal ‘clicked’ de Gtk.Button aquí:
+ https://developer.gnome.org/gtk3/stable/GtkButton.html#GtkButton-clicked
+
+No te olvides de documentar los nuevos métodos que se agregan.
+
+Consejo: No te olvides de llamar al método show() del botón y la etiqueta para
+que sean visibles después de añadirlos a la caja.
+"""
+
+from gi.repository import Gtk
+
+
+class SimpleWindow(Gtk.Window):
+ """Una ventana simple que muestra una etiqueta y un botón."""
+ def __init__(self):
+ super(SimpleWindow, self).__init__(title='Ventana Simple')
+
+ # Establecer un tamaño predeterminado de la ventana.
+ self.set_default_size(200, 200)
+
+ # Configurar un callback de cierre de la ventana. No modifique esto.
+ self.connect('destroy', self.__window_destroy_cb)
+
+ # Agregar una caja de la ventana.
+ box = Gtk.Box()
+ box.set_orientation(Gtk.Orientation.VERTICAL)
+ box.set_spacing(8)
+ box.set_border_width(8)
+ box.show()
+ self.add(box)
+
+ # Creación y configuración de la etiqueta y el botón.
+ label = Gtk.Label('Etiqueta inicial.')
+ label.show()
+ box.pack_start(label, True, True, 0)
+
+ button = Gtk.Button('Cambiar Etiqueta')
+ button.show()
+ box.pack_start(button, False, True, 0)
+
+ # Conecte el callback para el botón.
+ button.connect('clicked', self.__button_clicked_cb)
+
+ # Guarde la etiqueta como una variable de objeto que se pueda acceder
+ # desde el botón de callback.
+ self._label = label
+
+ def __button_clicked_cb(self, button):
+ """Callback para cambiar el texto de la etiqueta cuando se hace clic en
+ el botón."""
+ self._label.set_text('Etiqueta final.')
+
+ def __window_destroy_cb(self, window):
+ """Callback para salir del programa cuando la ventana está cerrada.
+
+ No modifique esto."""
+ Gtk.main_quit()
+
+
+# Ejecute el programa. No modifique esto.
+SimpleWindow().show()
+Gtk.main()