Vorrei riempire uno QGridLayout
con QWidgets
. Il QWidgets
deve apparire in alto a sinistra in alto a destra e procedere a riempire il basso verso il basso dopo che ciascuna riga è stata riempita con QWidgets
. Un esempio di una GUI simile e familiare è il modo in cui Apple ordina le sue app sulla schermata principale dell'iPhone o dell'iPad. Le app vanno in alto a sinistra in alto a destra e procedono in modo da andare verso il basso dopo che ciascuna riga è stata riempita.Come si riempie un QGridLayout da alto a sinistra a destra?
In questo momento, ogni volta che aggiungo elementi, occupano interamente lo schermo e/o non vengono aggiunti uno accanto all'altro.
Questo è esempio di codice di quello che sto facendo
m_gridLayout = new QGridLayout(this);
this->setLayout(m_gridLayout);
m_gridLayout->addWidget(widgetToBeAdded, m_currentRow, m_currentColumn, Qt::AlignLeft);
procedo per aggiornare m_currentColumn e m_currentRow come previsto. Dopo una certa quantità di colonne, gli dico di passare alla riga successiva e non succede nulla. Ho confermato tramite debugging che è infatti sputando le righe e le colonne corrette.)
Alla fine, avrò bisogno di lanciare un QScrollArea
in modo che si possa scorrere lungo la griglia.
La dimensione di ogni QWidget
sarà la stessa. Se potessi ricevere qualche aiuto per quanto riguarda la corretta classificazione della griglia, sarebbe molto apprezzato.
MODIFICA: utilizzando la risposta di seguito, sono riuscito a ordinare i miei articoli nell'ordine corretto. Tuttavia, vi è una grande quantità di spazio tra tutti gli elementi nella direzione verticale. Questo non è ovviato cambiando la proprietà verticalSpacing, come direi. Qualcuno sa come procedere?