Как заполнить QGridLayout сверху слева направо?

Я хотел бы заполнить QGridLayoutс помощью QWidgets. QWidgetsдолжны отображаться в порядке от верхнего левого до верхнего правого и продолжать заполнять вниз после заполнения каждой строки QWidgets. Примером похожего и знакомого графического интерфейса является то, как Apple сортирует свои приложения на главном экране iPhone или iPad. Приложения идут сверху слева направо и продолжают опускаться после заполнения каждой строки.

Прямо сейчас, когда я добавляю элементы, они занимают весь экран и/или не добавляются рядом друг с другом.

Это пример кода того, что я делаю.

m_gridLayout = new QGridLayout(this);
this->setLayout(m_gridLayout);
m_gridLayout->addWidget(widgetToBeAdded, m_currentRow, m_currentColumn, Qt::AlignLeft);

Я приступаю к обновлению m_currentColumn и m_currentRow, как и ожидалось.После определенного количества столбцов я говорю перейти к следующей строке, и ничего не происходит. Я подтвердил с помощью отладки, что на самом деле он выдает правильные строки и столбцы.)

В конце концов, мне нужно будет добавить QScrollArea, чтобы можно было прокручивать сетку.

Размер каждого QWidgetбудет одинаковым. Если бы я мог получить какую-либо помощь в отношении правильной сортировки сетки, я был бы очень признателен.

РЕДАКТИРОВАТЬ: Используя приведенный ниже ответ, мне удалось отсортировать мои элементы в правильном порядке. Однако между всеми элементами в вертикальном направлении имеется большое пространство. Это не устраняется изменением свойства verticalSpacing, как я думаю. Кто-нибудь знает, как действовать дальше?

6
задан DigviJay Patil 8 September 2015 в 06:37
поделиться