9.2. Arrows
Prev | Chapter 9. Miscellaneous Widgets | Next

## 9.2. Arrows

The `Arrow` widget draws an arrowhead, facing in a number of possible directions and having a number of possible styles. It can be very useful when placed on a button in many applications. Like the `Label` widget, it emits no signals.

There are only two calls for manipulating an `Arrow` widget:

      arrow = gtk.Arrow(arrow_type, shadow_type)

      arrow.set(arrow_type, shadow_type)

The first creates a new arrow widget with the indicated type and appearance. The second allows these values to be altered retrospectively. The `arrow_type` argument may take one of the following values:

      ARROW_UP
      ARROW_DOWN
      ARROW_LEFT
      ARROW_RIGHT

These values obviously indicate the direction in which the arrow will point. The `shadow_type` argument may take one of these values:

      SHADOW_IN
      SHADOW_OUT   # the default
      SHADOW_ETCHED_IN
      SHADOW_ETCHED_OUT

The arrow.py example program briefly illustrates their use. Figure 9.2, “Arrows Buttons Examples” illustrates the result of running the program:

Figure 9.2. Arrows Buttons Examples

The source code for arrow.py is:

        1	#!/usr/bin/env python
        2
        3	# example arrow.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 Arrows:
       20	    def __init__(self):
       21	        # Create a new window
       22	        window = gtk.Window(gtk.WINDOW_TOPLEVEL)
       23
       24	        window.set_title("Arrow Buttons")
       25
       26	        # It's a good idea to do this for all windows.
       27	        window.connect("destroy", lambda x: 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	        # Pack and show all our widgets
       38	        box.show()
       39
       40	        button = create_arrow_button(gtk.ARROW_UP, gtk.SHADOW_IN)
       41	        box.pack_start(button, False, False, 3)
       42
       43	        button = create_arrow_button(gtk.ARROW_DOWN, gtk.SHADOW_OUT)
       44	        box.pack_start(button, False, False, 3)
       45
       46	        button = create_arrow_button(gtk.ARROW_LEFT, gtk.SHADOW_ETCHED_IN)
       47	        box.pack_start(button, False, False, 3)
       48
       49	        button = create_arrow_button(gtk.ARROW_RIGHT, gtk.SHADOW_ETCHED_OUT)
       50	        box.pack_start(button, False, False, 3)
       51
       52	        window.show()
       53
       54	def main():
       55	    gtk.main()
       56	    return 0
       57
       58	if __name__ == "__main__":
       59	    Arrows()
       60	    main()

Prev | Up | Next
Chapter 9. Miscellaneous Widgets | Home | 9.3. The Tooltips Object