Domanda

Come posso aggiungere una casella di controllo/radiobutton/combobox a un QtableWidget o a QlistWidget?

È stato utile?

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.

Spin Box Delegate

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
scroll top