Доброго времени суток. Вот такой вопрос.
Я могу установить QCheckBox для конкретной ячейки таблицы:
QTableWidget::setCellWidget(x, y, new QCheckBox)
...............................
QTableWidget* pTableWidget(GetSomeTableWidget());
...............................................
QTableWidgetItem* pItem(pTableWidget->item(x, y));
if (pItem)
{
//состояние чекбокса
Qt::CheckState st = pItem->checkState();
}
...............................
QTableWidget* pTableWidget(table);
QTableWidgetItem* pItem(pTableWidget->item(0, 0));
qDebug() << pItem;
if (pItem) {
Qt::CheckState st = pItem->checkState();
}
А ты добавил элемент в таблицу? прежде чем его читать
//some part of code
.............................
QTableWidget* pSomeTable(GetSomeTable());
pSomeTable->setColumnCount(1);
pSomeTable->setRowCount(pSomeTable->rowCount() + 1);
QTableWidgetItem* pItem(new QTableWidgetItem(tr("blablabla")));
pItem->setFlags(pItem->flags() | Qt::ItemIsUserCheckable);
pItem->setCheckState(Qt::Unchecked);
pSomeTable->setItem(0, 0, pItem);
..............................
//in other place of code
QTableWidget* pTableWidget(GetSomeTable());
QTableWidgetItem* pItem(pTableWidget->item(0, 0));
if (pItem) {
Qt::CheckState st = pItem->checkState();
}
...............................
item = new QTableWidgetItem;
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
table->setItem(0, 0, item);
там поправка в коде выше
pItem->setCheckState(Qt::Unchecked);
Спасибо Работает.
А на будущее, все же можно как то установить конкретный виджет для ячейки, а потом его получить с помощью cellWidget? Уж коли метод есть, то и как-то применяться он должен.
QTableWidget* pWidget(new QTableWidget);
pWidget->setRowCount(1);
pWidget->setColumnCount(1);
pWidget->setCellWidget(0, 0, new QCheckBox(pWidget));
pWidget->show();
QCheckBox* pCheckB(qobject_cast<QCheckBox*>(pWidget->cellWidget(0, 0)));
if (pCheckB)
{
pCheckB->setChecked(true);
}
QCheckBox* pCheckB(qobject_cast<QCheckBox*>(pWidget->cellWidget(0, 0)));
ну если тебе только чекбокс нужно вставить, используй лучше метод с QTableWidgetItem
он гораздо понятнее
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)