Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: vulko от Июнь 23, 2014, 14:32



Название: Проблема с QTableWidget::cellWidget
Отправлено: vulko от Июнь 23, 2014, 14:32
Есть у меня табличка в виде QTableWidget, чисто для отображение (не редактируемая).

Так получилось, что нужно вставлять в каждую строчку check box.
CheckBox у меня свой, с парой важных полей, без которых логика слишком усложниться.

В общем вставил я его в таблицу с помощью setCellWidget. Все было хорошо и прекрасно, пока не захотелось мне прикрутить логику, для которой собсно он там есть.

Суть проблемы:
когда я получаю указатель на TLCheckBox (наследуется от QCheckBox)
Код:
TLCheckBox *cb = (TLCheckBox*) cellWidget(i, 7);
и пытаюсь прочитать его состояние, или проверить isChecked, выдает хрень полную.

Пробовал делать так:
Код:
TLCheckBox *cb( qobject_cast<TLCheckBox*>(cellWidget(i, 7)) );
но тут ссылка просто NULL, хотя для в описании класса есть Q_OBJECT макрос.

В общем грусть печаль пробирает, гугл выдает 2 решения проблемы с чекбоксом в таблице,
1. использовать QTableWidgetItem::setCheckable, но это не катит никак.
2. использовать qobject_cast, но он не работает

Собсно вопрос: кто вино..., в смысле что делать?
Как заставить работать qobject_cast?


Название: Re: Проблема с QTableWidget::cellWidget
Отправлено: vulko от Июнь 23, 2014, 15:09
Туплю...

Причина оказалась банальна... чек бокс вставлен в виджет, чтобы он был по центру ячейки...