1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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()
|