Come posso aggiungere una casella di controllo/pulsante di opzione a QtableWidget
-
27-10-2019 - |
Domanda
Come posso aggiungere una casella di controllo/radiobutton/combobox a un QtableWidget o a QlistWidget?
Soluzione
Per una casella di controllo utilizzando gli elementi Setcheckstate Il metodo dovrebbe fare ciò di cui hai bisogno sia per gli elenchi che per i widget della tabella. Vedi se il codice seguente funzionerebbe per te:
Widget Elenco:
QListWidgetItem *item0 = new QListWidgetItem(tr("First"), listWidget);
QListWidgetItem *item1 = new QListWidgetItem(tr("Second"), listWidget);
item0->setCheckState(Qt::Unchecked);
item1->setCheckState(Qt::Checked);
Widget della tabella:
QTableWidgetItem *item2 = new QTableWidgetItem("Item2");
item2->setCheckState(Qt::Checked);
tableWidget->setItem(0, 0, item2);
Puoi usare i delegati (QitemDelegate) Per altri tipi di widget dell'editore, l'esempio è qui: Esempio delegato di spin box.
Spero che questo aiuti.
Altri suggerimenti
Ci sono due metodi:
void QTableWidget::setCellWidget ( int row, int column, QWidget * widget )
e
void QListWidget::setItemWidget ( QListWidgetItem * item, QWidget * widget )
Consentono di inserire qualsiasi widget e altri controlli che ereditano Qwidget. Casella di controllo/Pulsante di opzione/ComboBox DO eredita da QWidget
.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow