Tooltips are the little text strings that
pop up when you leave your pointer over a button or other widget for a few
seconds.
Widgets that do not receive events (widgets that do not have
their own window) will not work with tooltips.
The first call you will use creates a new tooltip. You only need
to do this once for a set of tooltips as the
gtk.Tooltips object this function returns can be used
to create multiple tooltips.
tooltips = gtk.Tooltips()
|
Once you have created a new tooltip, and the widget you wish to use it
on, simply use this call to set it:
tooltips.set_tip(widget, tip_text, tip_private=None)
|
The object tooltips is the tooltip you've
already created. The first argument (widget) is the
widget you wish to have this tooltip pop up for; the second
(tip_text), the text you wish it to display. The last
argument (tip_private) is a text string that can be
used as an identifier.
The tooltip.py example
program modifies the arrow.py program to add a
tooltip for each button. Figure 9.3, “Tooltips Example” illustrates the
resulting display with the tooltip for the second arrow button
displayed:
The source code for tooltip.py is:
1 #!/usr/bin/env python
2
3 # example tooltip.py
4
5 import pygtk
6 pygtk.require('2.0')
7 import gtk
8
9 # Create an Arrow widget with the specified parameters
10 # and pack it into a button
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 # Create a new window
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 # Sets the border width of the window.
30 window.set_border_width(10)
31
32 # Create a box to hold the arrows/buttons
33 box = gtk.HBox(False, 0)
34 box.set_border_width(2)
35 window.add(box)
36
37 # create a tooltips object
38 self.tooltips = gtk.Tooltips()
39
40 # Pack and show all our widgets
41 box.show()
42
43 button = create_arrow_button(gtk.ARROW_UP, gtk.SHADOW_IN)
44 box.pack_start(button, False, 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, False, 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, False, 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, False, 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()
|
There are other methods that can be used with tooltips. I will
just list them with a brief description of what they do.
Enable a disabled set of tooltips.
Disable an enabled set of tooltips.
tooltips.set_delay(delay)
|
Sets how many milliseconds you have to hold your pointer over
the widget before the tooltip will pop up. The default is 500 milliseconds
(half a second).
And that's all the methods associated with tooltips. More than
you'll ever want to know :-)