Is it 开发者_如何学Cpossible to set the position of an image using pygtk?
import pygtk
import gtk
class Example:
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.image = gtk.Image()
self.image.set_from_file("example.png")
# Position goes here (it should, shouldn't it?)
self.window.add(self.image)
self.image.show()
self.window.fullscreen()
self.window.show_all()
GTK lays widgets out based on relative alignments and padding, not absolute pixel positions. Instances of gtk.Image have properties xalign, xpad, yalign, ypad that can be used to position the widget if the parent has more space than is needed.
For example
self.image.xalign = 0.5
self.image.yalign = 0.5
would center the image in the window
self.image.xalign = 0
self.image.yalign = 0
would place the image in the upper left
self.image.xalign = 1
self.image.yalign = 1
would place the image in the bottom right
If you really want to deal with fixed positions then you need to use the gtk.Fixed widget. It allows to specify an explicit position when adding a child through the method put(child, x, y)
. Heed the warning in the documentation, though, that it's a bad idea and will make for a broken UI.
精彩评论