Im Ubuntu Accomplishments-Projekt gibt es einige ungewöhnliche Fehler:
Das heißt, wir haben ein Fenster mit einem GtkNotebook und einem GtkIconView auf einer Seite und einem anderen auf einer anderen Seite.
Wenn der Benutzer die Größe des Fensters ändert, füllt die Symbolansicht den Bereich nicht automatisch mit Symbolen (sie bleiben in ihrem ursprünglichen Spaltenlayout). Wenn der Benutzer jedoch die GtkNotebook-Seiten ändert und somit die Symbolansicht aktualisiert, wird der Bereich wie erwartet belegt. Wie können wir den Platz beim Ändern der Fenstergröße automatisch nutzen?
Noch besorgniserregender ist jedoch, dass wir die Größe des Fensters verkleinern können, wenn es angezeigt wird. Es scheint, als würde uns die Symbolansicht daran hindern, die Größe zu ändern, und dann einen scrollbaren Bereich für die Symbole haben.
Der Code sieht so aus. Die ListStores, die die IconViews steuern:
self.trophystore = Gtk.ListStore(str, GdkPixbuf.Pixbuf, bool, bool, str, str) # title, icon accomplished, locked, app, accomplishment
self.trophystore.set_sort_column_id(COL_TITLE, Gtk.SortType.ASCENDING)
self.trophy_icon.set_model(self.trophystore)
self.oppstore = Gtk.ListStore(str, GdkPixbuf.Pixbuf, bool, bool, str, str) # title, icon, accomplished, locked, app, accomplishment
self.oppstore.set_sort_column_id(COL_TITLE, Gtk.SortType.ASCENDING)
self.opp_icon.set_model(self.oppstore)
self.trophy_icon.set_text_column(COL_TITLE)
self.trophy_icon.set_pixbuf_column(COL_PIXBUF)
self.opp_icon.set_text_column(COL_TITLE)
self.opp_icon.set_pixbuf_column(COL_PIXBUF)
Abgesehen davon stöbern wir nicht wirklich in den IconViews herum, sondern fügen lediglich Inhalte zu den ListStores hinzu, um die Ansichten zu aktualisieren.
Der Code für das Projekt ist hier - kann jemand empfehlen, wie wir diese beiden Probleme beheben können?