Dalam proyek Ubuntu Accomplishments kami mengalami beberapa bug yang tidak biasa:
Yaitu bahwa kita memiliki jendela dengan GtkNotebook dan GtkIconView pada halaman dan yang lain di halaman lain.
Ketika pengguna mengubah ukuran jendela, tampilan ikon tidak secara otomatis mengisi ruang dengan ikon (mereka tetap dalam tata letak kolom aslinya) tetapi jika pengguna mengubah halaman GtkNotebook dan dengan demikian menyegarkan tampilan ikon sehingga ruang diambil seperti yang diharapkan. Bagaimana kita dapat secara otomatis menggunakan ruang ketika mengubah ukuran jendela?
Yang lebih memprihatinkan adalah bahwa ketika jendela muncul, kita dapat mengubah ukurannya lebih kecil - sepertinya tampilan ikon menghalangi kita untuk mengubah ukuran dan kemudian memiliki wilayah yang dapat digulir untuk ikon.
Kode terlihat seperti ini. ListStores yang menggerakkan 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)
Selain ini, kami tidak benar-benar mencari-cari dengan IconViews, kami hanya menambahkan konten ke ListStores untuk memperbarui tampilan.
Kode untuk proyek ada di sini - adakah yang bisa merekomendasikan bagaimana kita dapat memperbaiki kedua masalah ini?