The Fixed container allows you to place
widgets at a fixed position within it's window, relative to it's upper left
hand corner. The position of the widgets can be changed dynamically.
There are only three calls associated with the fixed
widget:
fixed = gtk.Fixed()
fixed.put(widget, x, y)
fixed.move(widget, x, y)
|
The function gtk.Fixed() allows you to
create a new Fixed container.
The put() method places widget in the
container fixed at the position specified by x and
y.
The move() method allows the specified
widget to be moved to a new position.
The fixed.py example
illustrates how to use the Fixed container.
Figure 10.2, “Fixed Example” shows the result:
The source code for fixed.py:
1 #!/usr/bin/env python
2
3 # example fixed.py
4
5 import pygtk
6 pygtk.require('2.0')
7 import gtk
8
9 class FixedExample:
10 # This callback method moves the button to a new position
11 # in the Fixed container.
12 def move_button(self, widget):
13 self.x = (self.x+30)%300
14 self.y = (self.y+50)%300
15 self.fixed.move(widget, self.x, self.y)
16
17 def __init__(self):
18 self.x = 50
19 self.y = 50
20
21 # Create a new window
22 window = gtk.Window(gtk.WINDOW_TOPLEVEL)
23 window.set_title("Fixed Container")
24
25 # Here we connect the "destroy" event to a signal handler
26 window.connect("destroy", lambda w: gtk.main_quit())
27
28 # Sets the border width of the window.
29 window.set_border_width(10)
30
31 # Create a Fixed Container
32 self.fixed = gtk.Fixed()
33 window.add(self.fixed)
34 self.fixed.show()
35
36 for i in range(1, 4):
37 # Creates a new button with the label "Press me"
38 button = gtk.Button("Press me")
39
40 # When the button receives the "clicked" signal, it will call the
41 # method move_button().
42 button.connect("clicked", self.move_button)
43
44 # This packs the button into the fixed containers window.
45 self.fixed.put(button, i*50, i*50)
46
47 # The final step is to display this newly created widget.
48 button.show()
49
50 # Display the window
51 window.show()
52
53 def main():
54 # Enter the event loop
55 gtk.main()
56 return 0
57
58 if __name__ == "__main__":
59 FixedExample()
60 main()
|