2017-02-16 4 views
0

MigLayout - мой менеджер компоновки по выбору (в Java), и я не могу найти аналогичную функциональность в Qt (Учебники в PyQt рассматривают только QBoxLayout и QGridLayout). С Qt list of layout managers, есть что-то похожее на Мига?Есть ли менеджер компоновки для PyQt/Qt, аналогичный MigLayout?

Пример из guide (Java):

panel.add(comp1) 
panel.add(comp2, "span 2") // The component will span two cells. 
panel.add(comp3, "wrap") // Wrap to next row 
panel.add(comp4, "span") 

enter image description here

Я люблю, как можно расширить индивидуальную ячейку, а интервалы между ними одинаково в "сетке". Это позволяет создавать действительно сложные пользовательские интерфейсы.

ответ

1

QGridLayout делает это. Метод addItem имеет параметры rowSpan и columnSpan, которые позволяют создаваемой ячейке охватывать, вниз или и то, и другое. Это очень легко и отлично работает.

Сложение:

Для вставки виджета используйте addWidget. Обратите внимание, что существует две версии, и одна из них позволяет использовать столбцы и строки.

+0

Я не могу добавить обычный 'QPushButton' с addItem, потому что вместо' QWidget' требуется 'QLayoutItem'. Метод 'addWidget' не имеет диапазона, а только выравнивания. –

+0

Извините. Я быстро просмотрел документы. Есть две перегрузки addWidget. Второй позволяет охватить. – goug

+0

Я нашел это сообщение [post post] (http://stackoverflow.com/questions/32097030/qt-layout-relationship-between-qlayoutitem-and-qwidget). Я пытаюсь понять, как «преобразовать» QWidget в 'QLayoutItem'. –

Смежные вопросы