At 18:13 04.02.03 +0000, Gustavo J. A. M. " Carneiro wrote: >On Tue, 2003-02-04 at 11:00, Gustavo J. A. M. Carneiro wrote: >> On Mon, 2003-02-03 at 23:35, Andreas Kostyrka wrote: >> > Hi! >> > >> > I've been just wondering how one can display a scrolled image what is bigger >> > than the screen? >> > >> > DrawableArea in a Viewport in a ScrolledWindow works like a charm as long the >> > image is smaller than the screen. >> > >> > Any ideas? Is there some easier way then doing the scrolling myself >> > (DrawableArea + 2 scrollbars)? >> >> I have never tried this in python, but in C I would create a >> DrawingArea and two scrollbars (not a DrawingArea inside a scrollend >> window!). The image would be a GdkPixbuf. The expose event handler would >> render part of the pixbuf to the DrawingArea's window. The part that >> should be rendered is determined from the scrollbar adjustments (x/y >> offsets) and DrawingArea window size (width/height). If this is not >> possible in python, it should--file a bug report. It is possible:
import sys, gtk def delete_event(win, event=None): gtk.main_quit() def do_display(pixbuf, name) : win = gtk.Window() win.connect("delete_event", delete_event) win.set_title(name) box = gtk.VBox() win.add(box) swin = gtk.ScrolledWindow() box.pack_start(swin, gtk.TRUE, gtk.TRUE, 0) image = gtk.Image() image.set_from_pixbuf(pixbuf) swin.add_with_viewport(image) win.set_default_size(600,480) win.show_all() fname = sys.argv[1] pixbuf = gtk.gdk.pixbuf_new_from_file(fname) do_display(pixbuf, fname) gtk.main() >> Alternatively, you can use bonobo.ui to insert an EOG control widget >> to open the image you want ;) > > Here's the code for this last approach. It«'s fun! ;) > Though a little longer the code above has the advantage of only using plain Gtk, which makes it work under windoze as well :-) Hans -------- Hans "at" Breuer "dot" Org ----------- Tell me what you need, and I'll tell you how to get along without it. -- Dilbert _______________________________________________ pygtk mailing list [EMAIL PROTECTED] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/