Chciałbym wypełnić QGridLayout
z QWidgets
. Numer QWidgets
musi się pojawić w lewym górnym i prawym górnym rogu, a po wypełnieniu każdego wiersza QWidgets
należy wypełnić go w dół. Przykładem podobnego i znajomego GUI jest to, jak Apple sortuje swoje aplikacje na ekranie głównym iPhone'a lub iPada. Aplikacje przechodzą od lewej do góry w prawym górnym rogu i przechodzą w dół po wypełnieniu każdego wiersza.Jak wypełnić wiersz QGridLayout od lewej do prawej?
W tej chwili, gdy dodaję elementy, zajmują one cały ekran i/lub nie są dodawane obok siebie.
To jest przykład kodu, co robię
m_gridLayout = new QGridLayout(this);
this->setLayout(m_gridLayout);
m_gridLayout->addWidget(widgetToBeAdded, m_currentRow, m_currentColumn, Qt::AlignLeft);
mogę przystąpić do aktualizacji m_currentColumn i m_currentRow jak oczekiwano. Po pewnej liczbie kolumn mówię, żeby przejść do następnego wiersza i nic się nie dzieje. Potwierdziłem przez debugowanie, że to faktycznie wypluwa właściwe wiersze i kolumny.)
W końcu będę musiał rzucić QScrollArea
, aby można było przewinąć w dół.
Wielkość każdego z QWidget
będzie taka sama. Jeśli mógłbym uzyskać pomoc dotyczącą prawidłowego sortowania sieci, byłoby to bardzo cenne.
EDYCJA: Korzystając z poniższej odpowiedzi, udało mi się posortować moje produkty w prawidłowej kolejności. Jednak pomiędzy wszystkimi elementami w kierunku pionowym występuje duża przestrzeń. Nie można tego uniknąć, zmieniając właściwość verticalSpacing, jak sądzę. Czy ktoś wie, jak postępować?