#!/usr/bin/env python # example scrolledwin.py import pygtk pygtk.require('2.0') import gtk class ScrolledWindowExample: def destroy(self, widget): gtk.main_quit() def __init__(self): # Create a new dialog window for the scrolled window to be # packed into. window = gtk.Dialog() window.connect("destroy", self.destroy) window.set_title("ScrolledWindow example") window.set_border_width(0) window.set_size_request(300, 300) # create a new scrolled window. scrolled_window = gtk.ScrolledWindow() scrolled_window.set_border_width(10) # the policy is one of POLICY AUTOMATIC, or POLICY_ALWAYS. # POLICY_AUTOMATIC will automatically decide whether you need # scrollbars, whereas POLICY_ALWAYS will always leave the scrollbars # there. The first one is the horizontal scrollbar, the second, the # vertical. scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_ALWAYS) # The dialog window is created with a vbox packed into it. window.vbox.pack_start(scrolled_window, True, True, 0) scrolled_window.show() # create a table of 10 by 10 squares. table = gtk.Table(10, 10, False) # set the spacing to 10 on x and 10 on y table.set_row_spacings(10) table.set_col_spacings(10) # pack the table into the scrolled window scrolled_window.add_with_viewport(table) table.show() # this simply creates a grid of toggle buttons on the table # to demonstrate the scrolled window. for i in range(10): for j in range(10): buffer = "button (%d,%d)" % (i, j) button = gtk.ToggleButton(buffer) table.attach(button, i, i+1, j, j+1) button.show() # Add a "close" button to the bottom of the dialog button = gtk.Button("close") button.connect_object("clicked", self.destroy, window) # this makes it so the button is the default. button.set_flags(gtk.CAN_DEFAULT) window.action_area.pack_start( button, True, True, 0) # This grabs this button to be the default button. Simply hitting # the "Enter" key will cause this button to activate. button.grab_default() button.show() window.show() def main(): gtk.main() return 0 if __name__ == "__main__": ScrolledWindowExample() main()
scrolled_window.set_policy(hscrollbar_policy, vscrollbar_policy)
其中policy是:POLICY_AUTOMATIC 或 POLICY_ALWAYS. POLICY_AUTOMATIC