2009-05-16 3 views
2

Ich habe eine Combobox mit über hundert Einträgen und es ist sehr umständlich, ohne Scrollbar durchzublättern.Wie lege ich eine Bildlaufleiste innerhalb eines gtk.ComboBoxEntry?

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

Ich will genau das tun, was im Bild ist. Mit der Bildlaufleiste auf der rechten Seite, so dass es einfacher wäre, sich durch die Einträge zu bewegen. Ich habe gtk.Combo verwendet, um dieses Beispiel zu erstellen, aber das Problem ist, dass es veraltet ist.

Ich brauche ein Beispiel wie würden Sie tun, was ist genau das Bild.

Antwort

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()