Dear list!

My question may sound silly (and maybe it is), but let me explain.
You could say that a ScrolledWindow that is exactly as big as its
content doesn't make a lot of sense, but I think in my case it does:

I made a GUI using Glade and want to show it in a kind of "kiosk
mode", i.e. I want to run it in fullscreen mode with all the widgets
centered on the screen.
To achieve this, I placed a gtk.Alignment into the main gtk.Window and
inside of this I put all my other widgets.
This worked well until I placed a gtk.ScrolledWindow somewhere inside.

The reason for this is that I wanted to run the GUI on different
screen resolutions. On large screens, the Scrolledwindow should show
all contents and on small screens there should be scrollbars.

Therefore, I couldn't set a size request to the ScrolledWindow,
because this would be either too large for small screens or the other
way round.

What do I have to do that the ScrolledWindow shows all its contents on
large screens but still is scrollable if the toplevel window is very
small?

I think this should be logically possible, but I don't know how to
achieve it with pygtk.

To illustrate my problem, I created a little test script (see below).
The buttons are of course only place-holders for my actual widgets.
In a comment there is one line with a size request. If I un-comment
that, it looks more or less like I want it to look. The thing is even
if I did know the exact size of the contents, it would still not be
scrollable if the window is made very small.

I hope you understand my problem and maybe you know a solution or have
some hints for me.

Thanks in advance,
Matthias

#########################################
#!/usr/bin/env python

import pygtk
pygtk.require('2.0')
import gtk

class ScrolledWindowTest:
    def destroy(self, widget):
        gtk.main_quit()

    def __init__(self):
        window = gtk.Window()
        window.fullscreen()
        window.connect("destroy", self.destroy)
        window.set_title("ScrolledWindow Test")
        scrolled_window = gtk.ScrolledWindow()
        # I would like it to look like with this line:
        #scrolled_window.set_size_request(105,205)
        scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        alignment = gtk.Alignment(0.5, 0.5, 0, 0)
        alignment.add(scrolled_window)
        window.add(alignment)
        vbox = gtk.VBox()
        scrolled_window.add_with_viewport(vbox)
        for i in range(5):
            button = gtk.ToggleButton("button")
            button.set_size_request(80, 40)
            vbox.pack_start(button, expand=False)
        window.show_all()

if __name__ == "__main__":
    ScrolledWindowTest()
    gtk.main()

#########################################
_______________________________________________
pygtk mailing list   [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/

Reply via email to