W projekcie Osiągnięcia Ubuntu mamy kilka niezwykłych błędów:
Mianowicie, że mamy okno z GtkNotebook i GtkIconView na stronie i innym na innej stronie.
Gdy użytkownik zmienia rozmiar okna, widok ikon nie automatycznie wypełnia przestrzeń ikonami (pozostają w oryginalnym układzie kolumn), ale jeśli użytkownik zmieni strony GtkNotebook, a tym samym odświeży widok ikon, miejsce zostanie zajęte zgodnie z oczekiwaniami. Jak możemy automatycznie wykorzystać przestrzeń podczas zmiany rozmiaru okna?
Bardziej niepokojące jest to, że kiedy pojawi się okno, możemy zmienić jego rozmiar na mniejszy - wygląda na to, że widok ikon blokuje nam zmianę rozmiaru, a następnie posiadanie przewijalnego regionu dla ikon.
Kod wygląda następująco. ListStores, które sterują 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)
Poza tym, tak naprawdę nie przeszukujemy IconViews, po prostu dodajemy zawartość do ListStores, aby zaktualizować widoki.
Kod projektu znajduje się tutaj - czy ktoś może polecić, jak możemy rozwiązać te dwa problemy?