| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > QTableView + QSqlTableModel + checkbox |
| Автор: Alca 10.11.2012, 23:51 |
| Хочу булевое поле из БД отображать как чекбокс. Что-то на эту тему ни чего подходящего не нагуглил. |
| Автор: loneybibi 11.11.2012, 04:05 | ||
Используйте делегаты для QTableView. В демо Qt есть много примеров, что то похожее там было. Поищите в гугл про делегаты QStyledItemDelegate. Схема будет приблизительно такой: -Создать класс на основе QStyledItemDelegate -Переопределить событие paint() этого класса -В переопределенном событии paint() отрисовать QCheckBox в ячейке Потом установить этот касс как делегат для определенной колонки таблицы. |
| Автор: Alca 12.11.2012, 00:13 |
| а что делать с QSqlTableModel ? Вот сам проект: https://bitbucket.org/skynowa/iteacher/src |
| Автор: loneybibi 12.11.2012, 01:22 | ||||||
для того что бы отображать вместо bool значения checkbox нужно создать делегат и установить его для таблицы! трогать модель вообще не нужно! могу дать пример простого делегата с текстом, другие я не делал, но примеров встроенных в Qt много, посмотрите!
Использовать так:
Используйте класс QStyledItemDelegate! у этого класса просто переопределяются события состояний когда он находиться в режиме простого отображения и редактирования, вместо них подставляете свои виджеты. По этому поводу очень много документации на русском языке. |