Las Tooltips (Pistas) son pequeñas cadenas de texto que aparecen cuando se deja el cursor sobre un botón u otro control durante unos segundos.
Los controles que no reciben eventos (controles que no tienen su propia ventana) no funcionarán con las pistas.
La primera llamada que se usará crea una nueva pista. Sólo es necesario hacer esto una vez ya que el objeto que devuelve gtk.Tooltips puede usarse para crear múltiples pistas.
tooltips = gtk.Tooltips() |
Una vez que se ha creado una nueva pista, y el control que se quiere que la use está preparado, simplemente se utiliza esta llamada para asociarlos:
tooltips.set_tip(widget, tip_text, tip_private=None) |
El objeto tooltips es la pista que se acaba de crear. El primer argumento (widget) es el control que se quiere que muestre la pista; el segundo argumento (tip_text), el texto que se quiere visualizar. El último argumento (tip_private) es una cadena de texto que puede usarse como identificador.
El programa de ejemplo tooltip.py modifica el programa arrow.py para añadir una pista a cada botón. La figura Figura 9.3, “Ejemplo de Pistas” ilustra la ventana resultante con la pista del segundo botón flecha activada:
El código fuente del programa tooltip.py es:
1 #!/usr/bin/env python
2
3 # ejemplo tooltip.py
4
5 import pygtk
6 pygtk.require('2.0')
7 import gtk
8
9 # Crear una Flecha con los parámetros especificados
10 # y empaquetarlo en un botón
11 def create_arrow_button(arrow_type, shadow_type):
12 button = gtk.Button()
13 arrow = gtk.Arrow(arrow_type, shadow_type)
14 button.add(arrow)
15 button.show()
16 arrow.show()
17 return button
18
19 class Tooltips:
20 def __init__(self):
21 # Creamos una ventana nueva
22 window = gtk.Window(gtk.WINDOW_TOPLEVEL)
23
24 window.set_title("Tooltips")
25
26 # It's a good idea to do this for all windows.
27 window.connect("destroy", lambda w: gtk.main_quit())
28
29 # Establece el grosor del borde de la ventana
30 window.set_border_width(10)
31
32 # Creamos una caja para poner las flechas/botones
33 box = gtk.HBox(gtk.FALSE, 0)
34 box.set_border_width(2)
35 window.add(box)
36
37 # creamos un objeto de pista
38 self.tooltips = gtk.Tooltips()
39
40 # Empaquetamos y mostramos todos los controles
41 box.show()
42
43 button = create_arrow_button(gtk.ARROW_UP, gtk.SHADOW_IN)
44 box.pack_start(button, gtk.FALSE, gtk.FALSE, 3)
45 self.tooltips.set_tip(button, "SHADOW_IN")
46
47 button = create_arrow_button(gtk.ARROW_DOWN, gtk.SHADOW_OUT)
48 box.pack_start(button, gtk.FALSE, gtk.FALSE, 3)
49 self.tooltips.set_tip(button, "SHADOW_OUT")
50
51 button = create_arrow_button(gtk.ARROW_LEFT, gtk.SHADOW_ETCHED_IN)
52 box.pack_start(button, gtk.FALSE, gtk.FALSE, 3)
53 self.tooltips.set_tip(button, "SHADOW_ETCHED_IN")
54
55 button = create_arrow_button(gtk.ARROW_RIGHT, gtk.SHADOW_ETCHED_OUT)
56 box.pack_start(button, gtk.FALSE, gtk.FALSE, 3)
57 self.tooltips.set_tip(button, "SHADOW_ETCHED_OUT")
58
59 window.show()
60
61 def main():
62 gtk.main()
63 return 0
64
65 if __name__ == "__main__":
66 tt = Tooltips()
67 main()
|
Hay otros métodos que se pueden usar con las pistas. Simplemente los listaremos, junto con una breve descripción sobre su función.
tooltips.enable() |
Activa un conjunto de pistas desactivadas.
tooltips.disable() |
Desactiva un conjunto de pistas activadas.
tooltips.set_delay(delay) |
Fija los milisegundos que deben transcurrir con el puntero sobre el control antes de que la pista aparezca. El valor predefinido es de 500 milisegundos (medio segundo).
Y esos son todos los métodos asociados con las pistas. Más de lo que siempre se querría saber :-)