Название: QTableWidget::setCellWidget как потом докопаться до виджета. Отправлено: n4ela от Февраль 19, 2010, 04:24 Вобщем встраиваю в ячейку QCheckBox
Код И потом мне надо найти все отмеченные чекбоксы в таблице. Проверяю так: Код Но почему то все чекбоксы считаются Unchecked. Подумал может если я вставляю чекбоксы с помощью setCellWidget, то и проверять я их должен не через item, а через cellWidget. Но cellWidget возвращает QWidget в котором нету метода checkState(). Название: Re: QTableWidget::setCellWidget как потом докопаться до виджета. Отправлено: registrationfedser87 от Февраль 19, 2010, 07:16 Тебе нужно либо использовать делегаты, либо приводить QWidget,возвращаемый методом cellWidget() к QCheckBox,например так:
Код: QWidget *w = tableWidget->item( i, j ); Название: Re: QTableWidget::setCellWidget как потом докопаться до виджета. Отправлено: Павел_F. от Февраль 19, 2010, 09:19 Для checkBox есть более изящное решение. У QTableWidgetItem есть void QTableWidgetItem::setFlags ( Qt::ItemFlags flags ). Во флаги нужно добавить Qt::ItemIsUserCheckable. Тогда итем будет "чекабельным". Также у QTableWidgetItem есть методы void QTableWidgetItem::setCheckState ( Qt::CheckState state ) и Qt::CheckState QTableWidgetItem::checkState () const.
PS: А Qt::CheckState QTableWidgetItem::checkState () const возвращает состояние итема ячейки а не виджета в ней. Поэтому все они не "отмеченные". Название: Re: QTableWidget::setCellWidget как потом докопаться до виджета. Отправлено: n4ela от Февраль 20, 2010, 01:23 Спасибо, то что нужно. Сделал через setCheckState
|