Как я могу динамически «заполнить» макет уже существующими объектами в PyQt5?

#python #layout #pyqt5

Вопрос:

У меня есть область прокрутки с сеткой внутри.

Внутри этого макета сетки я изначально создаю множество флажков внутри этого макета сетки.

Теперь, когда я использую .hide() флажок, пробел сохраняется. Только когда я скрываю все флажки в строке, строка скрыта.

Как я могу гарантировать, что, когда я скрою некоторые флажки, флажки ниже «переместятся», чтобы заполнить пространство? Я уже использовал .update() родительский виджет. Я не могу привести пример кода, но я предполагаю, что это довольно простая операция пользовательского интерфейса, поэтому я надеюсь, что кто-то знает, о чем я говорю. Я попытался повозиться с политикой размера, но, к сожалению, не нашел решения. Заранее спасибо!

Комментарии:

1. Ты не можешь. Представьте себе макет сетки в виде таблицы электронной таблицы: если вы удалите ячейку, электронная таблица не переместит следующие ячейки, и даже если это произойдет, что она должна делать? Переместить ячейки следующей строки? Почему не те, что в следующей колонке? Если вы хотите «переместить» виджеты в сетку, вам нужно сделать это программно, addWidget снова вызвав новую строку и столбец.

2. У меня та же проблема, но в моем случае удаление и добавление его снова значительно усложнило бы задачу — возможно, есть способ переместить объект без его удаления/добавления…