2010-11-01 13 views
5

Utilizzo Qt Creator 2.0.1 (Qt 4.7). Ho bisogno di un widget che possa contenere più caselle di controllo verticalmente. Le caselle di controllo verranno aggiunte al widget in modo dinamico in seguito all'interazione dell'utente con un altro elemento dell'interfaccia utente. Il widget avrà larghezza e altezza fisse, quindi se ci sono troppe caselle di controllo, dovrebbe apparire una barra di scorrimento verticale.Aggiunta di un elenco di caselle di controllo in un singolo widget in Qt

Quello che voglio è, immagina un QListWidget, in cui le voci dell'elenco possono essere caselle di controllo.

Quale widget mi consentirà di farlo?

Grazie.

risposta

0

Un'alternativa a QListWidget è un QScrollArea con un widget all'interno, che ha un QVBoxLayout.Per quel layout, è possibile aggiungere QCheckboxes dinamicamente.È necessario chiamare updateGeometry() dopo aver aggiunto un nuovo widget, altrimenti l'interfaccia utente potrebbe non aggiornarsi se già visibile

11

Utilizzare QListWidget per il area

QStringList itemLabels= getLabels(); 

QStringListIterator it(itemLabels); 
while (it.hasNext()) 
{ 
     QListWidgetItem *listItem = new QListWidgetItem(it.next(),listWidget); 
     listItem->setCheckState(Qt::Unchecked); 
     ui->listWidget->addItem(listItem); 
} 

questo renderà automaticamente controllabili tutti gli elementi e quando la lista aumenterà consentirà lo scorrimento.

+0

Inoltre, se costruisci QListWidgetItem con il widget elenco come widget principale, non è necessario aggiungere l'elemento all'elenco. – asclepix

Problemi correlati