QTableWidget с CheckBox'ом внутри |
Здравствуйте, гость ( Вход | Регистрация )
QTableWidget с CheckBox'ом внутри |
silver47 |
14.4.2011, 6:51
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
Доброго времени суток. Вот такой вопрос.
Я могу установить QCheckBox для конкретной ячейки таблицы:
Как мне прочитать его состояние? Есть такое QTableWidget::cellWidget(int x, int y); - возвращает указатель на виджет, расположенный в указанной ячейке. Как мне определить isCheked он или нет? для QWidget метод isCheked не определен. Если создать свой QCheckBox(QTableWidget::cellWidget(x, y)) и проверять его состояние, то он всегда false (потому что это уже другой объект QCheckBox (проверял по адресам)). А вот как сделать чтобы вновь созданный QCheckBox был ссылкой на старый? Не могу сообразить. Не хочу городить свою модель. Таблица не большая от 1 до 10 строчек. Спасибо. P.S. cellWidget(x, y) возвращает нужный мне указатель, только на тип QWidget, как бы его преобразовать к QCheckBox? Сообщение отредактировал silver47 - 14.4.2011, 7:26 |
|
|
wiz29 |
14.4.2011, 8:30
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
Никаких виджетов устанавливать не нужно. Достаточно просто указать CheckState для элемента ячейки. QTableWidgetItem::setFlags тебе поможет сделать элемент как чекбокс Сообщение отредактировал wiz29 - 14.4.2011, 8:31 |
|
|
silver47 |
14.4.2011, 8:32
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
table - это указатель на мой табличный виджет pItem - всегда нулевой указатель |
|
|
wiz29 |
14.4.2011, 8:33
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
А ты добавил элемент в таблицу? прежде чем его читать
|
|
|
silver47 |
14.4.2011, 8:37
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
|
|
|
wiz29 |
14.4.2011, 8:42
Сообщение
#6
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
А ты добавил элемент в таблицу? прежде чем его читать Да. В конструкторе: table->setCellWidget(0, 0, new QCheckBox); см пример выше. Сообщение отредактировал wiz29 - 14.4.2011, 8:58 |
|
|
silver47 |
14.4.2011, 8:50
Сообщение
#7
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
Нет Чекбокса:
Прикрепленные изображения
|
|
|
wiz29 |
14.4.2011, 8:59
Сообщение
#8
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
там поправка в коде выше
pItem->setCheckState(Qt::Unchecked); |
|
|
silver47 |
14.4.2011, 9:03
Сообщение
#9
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
Спасибо Работает.
А на будущее, все же можно как то установить конкретный виджет для ячейки, а потом его получить с помощью cellWidget? Уж коли метод есть, то и как-то применяться он должен. |
|
|
wiz29 |
14.4.2011, 9:08
Сообщение
#10
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
Можно и так |
|
|
Текстовая версия | Сейчас: 29.11.2024, 13:29 |