Создание GTK Gridview как галереи с разной высотой - PullRequest
1 голос
/ 04 июня 2019

Я пытаюсь построить сетку 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()

То, что делает мой текущий код, это установка фиксированной ширины для потомка, затем получение высоты и добавление ее в сетку столбцов, чтобы следующие потомки были ниже

Так есть ли в gtk какой-либо макет, lib или что-нибудь еще такое?

Спасибо !!

...