Comment puis-je ajouter une case à cocher/bouton radio à QTableWidget

Comment puis-je ajouter une case à cocher/radiobutton/combobox à un QTableWidget ou à un QListWidget?

25
demandé sur Cœur 2011-03-20 18:09:50

2 réponses

pour une case à cocher en utilisant l'élément setCheckState la méthode devrait faire ce que vous avez besoin à la fois pour les widgets de liste et de table. Voir si le code ci-dessous serait travailler pour vous:

widget List:

QListWidgetItem *item0 = new QListWidgetItem(tr("First"), listWidget);
QListWidgetItem *item1 = new QListWidgetItem(tr("Second"), listWidget);

item0->setCheckState(Qt::Unchecked);
item1->setCheckState(Qt::Checked);

widget de Table:

QTableWidgetItem *item2 = new QTableWidgetItem("Item2");
item2->setCheckState(Qt::Checked);
tableWidget->setItem(0, 0, item2);

Vous pouvez utiliser les délégués ( QItemDelegate) pour les autres types de widgets de l'éditeur, l'exemple est ici:Spin Box Délégué Exemple.

Spin Box Delegate

je espérons que cette aide.

19
répondu serge_gubenko 2018-05-02 12:34:23

Il y a deux méthodes:

void QTableWidget::setCellWidget ( int row, int column, QWidget * widget )

et

void QListWidget::setItemWidget ( QListWidgetItem * item, QWidget * widget )

ils permettent d'insérer n'importe quel widget et autres contrôles qui héritent QWidget. Case à cocher / bouton radio / combobox héritent de QWidget.

47
répondu Pie_Jesu 2012-01-16 20:01:41