2009-05-16 13 views
2

J'ai un Combobox avec plus d'une centaine d'entrées et il est très difficile de parcourir une barre de défilement.Comment placer une barre de défilement à l'intérieur d'un gtk.ComboBoxEntry?

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

Je veux faire exactement ce qui est dans l'image. Avec la barre de défilement sur la droite, il serait plus facile de parcourir les entrées. J'ai utilisé gtk.Combo pour faire cet exemple mais le problème est que c'est déprécié.

J'ai besoin d'un exemple de comment voulez-vous faire ce qui est exactement l'image.

Répondre

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