Los Marcos se pueden usar para encerrar un widget o un grupo de ellos dentro de una caja que, opcionalmente puede llevar un título. La posición del título y el estilo de la caja se puede alterar a tu gusto.
Un Frame (Marco) se puede crear con la siguiente función
frame = gtk.Frame(label=None)
|
El label (título) se coloca en la esquina superior izquierda del marco de manera predeterminada. Especificando un valor de None para el argumento label o sin especificar el argumento label hará que no se visualice ningún título. El texto del título se puede cambiar usando el método:
frame.set_label(label)
|
La posición del título se puede cambiar usando el método:
frame.set_label_align(xalign, yalign) |
xalign y yalign toman valores entre 0.0 y 1.0. xalign indica la posición del título en la horizontal superior del marco. yalign no se usa por ahora. El valor por defecto de xalign es 0.0 lo que coloca al título en la esquina izquierda del marco.
El siguiente método modifica el estilo de la caja que se usa para rodear el marco.
frame.set_shadow_type(type)
|
El argumento type puede tomar uno de los siguientes valores:
SHADOW_NONE # sin sombra SHADOW_IN # sombra hacia dentro SHADOW_OUT # sombra hacia fuera SHADOW_ETCHED_IN # sombra abrupta hacia dentro SHADOW_ETCHED_OUT # sombra abrupta hacia fuera (valor predeterminado) |
El ejemplo frame.py muestra el uso del control Marco. La figura Figura 10.4. Ejemplo de Marco muestra la ventana resultante:
EL código fuente de frame.py es:
1 #!/usr/bin/env python
2
3 # example frame.py
4
5 import gtk
6
7 class FrameExample:
8 def __init__(self):
9 # Create a new window
10 window = gtk.Window(gtk.WINDOW_TOPLEVEL)
11 window.set_title("Frame Example")
12
13 # Here we connect the "destroy" event to a signal handler
14 window.connect("destroy", gtk.mainquit)
15 window.set_size_request(300, 300)
16
17 # Sets the border width of the window.
18 window.set_border_width(10)
19
20 # Create a Frame
21 frame = gtk.Frame()
22 window.add(frame)
23
24 # Set the frame's label
25 frame.set_label("GTK Frame Widget")
26
27 # Align the label at the right of the frame
28 frame.set_label_align(1.0, 0.0)
29
30 # Set the style of the frame
31 frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
32 frame.show()
33
34 # Display the window
35 window.show()
36
37 def main():
38 # Enter the event loop
39 gtk.main()
40 return 0
41
42 if __name__ == "__main__":
43 FrameExample()
44 main()
|
Los programas calendar.py, label.py y spinbutton.py también usan Marcos.