У проекті Ubuntu Досягнення у нас є кілька незвичайних помилок:
А саме, що у нас є вікно з GtkNotebook та GtkIconView на сторінці та інше на іншій сторінці.
Коли користувач переосмислює вікно, перегляд іконок не автоматично заповнює простір піктограмами (вони залишаються в їх початковому розташуванні стовпців), але якщо користувач змінює сторінки GtkNotebook і тим самим оновлює перегляд піктограм, простір займає, як очікувалося. Як ми можемо автоматично використовувати простір під час зміни вікна?
Що більш важливо, однак, це те, що коли з'являється вікно, ми можемо змінити його розмір менше - здається, ніби iconview перешкоджає нам змінювати розмір, а потім мати прокручувану область для піктограм.
Код виглядає приблизно так. ListStores, які керують IconViews:
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)
Крім цього, ми справді не замислюємося з IconViews, ми просто додаємо вміст до ListStores для оновлення подань.
Код проекту тут - може хтось порекомендувати, як ми можемо виправити ці дві проблеми?