如何在gtk.ComboBoxEntry中放置滚动条?

时间:2009-05-16 21:15:53

标签: python user-interface pygtk

我有一个带有超过一百个条目的Combobox,用滚动条浏览它是非常尴尬的。

alt text http://img211.imageshack.us/img211/6972/screenshotprubapy.png

我想完全按照图片中的内容进行操作。使用右侧的滚动条,可以更轻松地浏览条目。我使用gtk.Combo来制作这个例子,但问题是不推荐使用。

我需要一个例子,说明你将如何做完全图片。

1 个答案:

答案 0 :(得分:2)

import pygtk
import gtk
import gobject

def window_delete_event(*args):
    return False

def window_destroy(*args):
    gtk.main_quit()

if __name__ == '__main__':
    win = gtk.Window()

    # combo's model
    model = gtk.ListStore(gobject.TYPE_STRING)
    for n in xrange(100):
        model.append([str(n)])

    # combo
    combo = gtk.ComboBoxEntry(model)
    win.add(combo)

    # combo's style
    style = gtk.rc_parse_string('''
        style "my-style" { GtkComboBox::appears-as-list = 1 }
        widget "*.mycombo" style "my-style"
    ''')
    combo.set_name('mycombo')
    combo.set_style(style)

    win.show_all()
    win.connect('delete-event', window_delete_event)
    win.connect('destroy', window_destroy)
    gtk.main()