Las Tooltips (Pistas) son pequeñas cadenas de texto que aparecen cuando dejas 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 usarás creará una nueva pista. Sólo tienes que 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 has creado una nueva pista, y el control que quieres que la use está preparado, simplemente usa esta llamada para asociarlos:
tooltips.set_tip(widget, tip_text, tip_private=None) |
El objeto tooltips es la pista que acabas de crear. El primero argumento (widget) es el control que quieres que muestre la pista; el segundo argumento (tip_text), el texto que quieres 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 # example tooltip.py
4
5 import gtk
6
7 # Create an Arrow widget with the specified parameters
8 # and pack it into a button
9 def create_arrow_button(arrow_type, shadow_type):
10 button = gtk.Button();
11 arrow = gtk.Arrow(arrow_type, shadow_type);
12 button.add(arrow)
13 button.show()
14 arrow.show()
15 return button
16
17 class Tooltips:
18 def __init__(self):
19 # Create a new window
20 window = gtk.Window(gtk.WINDOW_TOPLEVEL)
21
22 window.set_title("Tooltips")
23
24 # It's a good idea to do this for all windows.
25 window.connect("destroy", gtk.mainquit)
26
27 # Sets the border width of the window.
28 window.set_border_width(10)
29
30 # Create a box to hold the arrows/buttons
31 box = gtk.HBox(gtk.FALSE, 0)
32 box.set_border_width(2)
33 window.add(box)
34
35 # create a tooltips object
36 self.tooltips = gtk.Tooltips()
37
38 # Pack and show all our widgets
39 box.show()
40
41 button = create_arrow_button(gtk.ARROW_UP, gtk.SHADOW_IN)
42 box.pack_start(button, gtk.FALSE, gtk.FALSE, 3)
43 self.tooltips.set_tip(button, "SHADOW_IN")
44
45 button = create_arrow_button(gtk.ARROW_DOWN, gtk.SHADOW_OUT)
46 box.pack_start(button, gtk.FALSE, gtk.FALSE, 3)
47 self.tooltips.set_tip(button, "SHADOW_OUT")
48
49 button = create_arrow_button(gtk.ARROW_LEFT, gtk.SHADOW_ETCHED_IN)
50 box.pack_start(button, gtk.FALSE, gtk.FALSE, 3)
51 self.tooltips.set_tip(button, "SHADOW_ETCHED_IN")
52
53 button = create_arrow_button(gtk.ARROW_RIGHT, gtk.SHADOW_ETCHED_OUT)
54 box.pack_start(button, gtk.FALSE, gtk.FALSE, 3)
55 self.tooltips.set_tip(button, "SHADOW_ETCHED_OUT")
56
57 window.show()
58
59 def main():
60 gtk.main()
61 return 0
62
63 if __name__ == "__main__":
64 tt = Tooltips()
65 main()
|
Hay otros métodos que pueden usarse con las pistas. Simplemente los listaré con una breve descripción sobre lo que hacen.
tooltips.enable() |
Activa un conjunto de pistas desactivadas.
tooltips.disable() |
Desactiva un conjunto de pistas activadas.
tooltips.set_delay(delay)
|
Dice cuantos milisegundos tienes que mantener 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 quisiste saber :-)