ในโครงการความสำเร็จของ Ubuntu เรากำลังพบข้อผิดพลาดเล็กน้อยบางประการ:
คือเรามีหน้าต่างที่มี GtkNotebook และ GtkIconView ในหน้าหนึ่งและอีกหน้าต่างหนึ่งในอีกหน้าหนึ่ง
เมื่อผู้ใช้ปรับขนาดหน้าต่างใหม่ไอคอนวิวจะไม่เติมช่องว่างโดยอัตโนมัติด้วยไอคอน (อยู่ในรูปแบบคอลัมน์เดิม) แต่หากผู้ใช้เปลี่ยนหน้า GtkNotebook และทำให้การรีเฟรชไอคอนดูพื้นที่นั้นเกิดขึ้นตามที่คาดไว้ เราจะใช้พื้นที่โดยอัตโนมัติเมื่อปรับขนาดหน้าต่างได้อย่างไร
สิ่งที่เกี่ยวข้องเพิ่มเติมคือเมื่อหน้าต่างปรากฏขึ้นเราสามารถปรับขนาดให้เล็กลง - ดูเหมือนว่าไอคอนวิวกำลังบล็อกเราจากการปรับขนาดแล้วมีพื้นที่เลื่อนสำหรับไอคอน
รหัสมีลักษณะเช่นนี้ 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 เพื่ออัปเดตมุมมอง
รหัสสำหรับโครงการอยู่ที่นี่ - ทุกคนสามารถแนะนำวิธีที่เราสามารถแก้ไขปัญหาทั้งสองนี้ได้หรือไม่