Как я могу добавить флажок / переключатель в QTableWidget - PullRequest
26 голосов
/ 20 марта 2011

Как я могу добавить флажок / radiobutton / combobox к QTableWidget или QListWidget?

Ответы [ 2 ]

50 голосов
/ 20 марта 2011

Есть два метода:

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

и

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

Они позволяют вставлять любой виджет и другие элементы управления, которые наследуют QWidget. Флажок / переключатель / комбинированный список наследуются от QWidget.

21 голосов
/ 21 марта 2011

Для флажка, использующего элемент setCheckState , метод должен делать то, что вам нужно как для виджетов списка, так и для таблиц. Посмотрите, подойдет ли вам приведенный ниже код:

Виджет списка:

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

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

Виджет таблицы:

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

Вы можете использовать делегаты ( QItemDelegate ) для других типов виджетов редактора, пример здесь: Пример делегата Spin Box .

Spin Box Delegate

Надеюсь, это поможет.

...