Я использую QCheckBox
в QTableWidgetCell
Как получить виджет от QTableWidgetCell
QWidget *widget = new QWidget();
QCheckBox *checkBox = new QCheckBox();
QHBoxLayout *layout = new QHBoxLayout(widget);
layout->addWidget(checkBox);
layout->setAlignment(Qt::AlignCenter);
layout->setContentsMargins(0, 0, 0, 0);
widget->setLayout(layout);
table->setCellWidget(0, 0, widget);
Я не могу получить эту QCheckBox
QTableWidgetItem *item = ui->table->item(0, 0);
QWidget *widget = dynamic_cast<QWidget *>(item); // Widget==0
QHBoxLayout *layout = dynamic_cast<QHBoxLayout *>(widget->layout());
QCheckBox *checkBox = dynamic_cast<QCheckBox *>(layout->widget());
Не работает. chkBox равен 0. – Ufx
@Ufx, потому что вы установили виджет ячейки 'QWidget', который содержит' QCheckBox'. Почему бы вам не добавить флажок напрямую, не обернув его другим «QWidget»? – vahancho
Я просто попытался использовать 'QCheckBox * checkBox = new QCheckBox(); table-> setCellWidget (0, 0, checkBox); '. Не работает. chkBox равно 0. – Ufx