像不同高度的画廊一样构建GTK Gridview

时间:2019-06-03 21:38:12

标签: gtk3 pygtk

我正在尝试构建一个单元格高度随机的GTK网格,这是现在的结果:

https://framapiaf.s3.framasoft.org/framapiaf/media_attachments/files/003/551/599/original/d513c5fb60a87e1e.png

但是我仍然遇到一些问题,所以我想知道是否存在任何已经写好的布局来实现这样的目标。我的代码很丑陋,所以不要大惊小怪,只是尝试一下而已:

        column_rows = [0,0,0,0]
        row = 0
        column = 0
        from random import randint
        width = int(self.get_size().width/4)
        while( row != 100):
            text = ""
            for i in range(0,randint(0, 100)):
                text = text+"bla "
            notear = {"shorttext":text, "title":"title"}
            note = NoteWidget(notear)
            note.set_size_request(width, -1)
            note.show_all()
            note.modify_bg(Gtk.StateFlags.NORMAL, Gdk.color_parse('white'))
            height = note.size_request().height
            self.note_container.attach(note, column, column_rows[column], 1, height)
            column_rows[column] = column_rows[column]+height
            print(height)
            if(column == 3):
                column = 0
                row = row+1

            else:

                column = column + 1


        self.note_container.show_all()

我当前的代码所做的是为子级设置固定宽度,然后获取高度并将其添加到列网格中,以便下一个子级位于

那么,有没有任何布局,lib或gtk已经做过的事情?

谢谢!!

0 个答案:

没有答案