Название: Checkbox-ы в QTableView как убрать? Отправлено: alex-v от Март 11, 2011, 10:23 ...было все ОК пока использовал стандартную модель QSqlTableModel.
Но когда я наследовал от неё свой класс, чтобы переопределить метод data(), то в ячейках таблицы вместе с текстом стали выводиться еще и чекбоксы :). Как от них избавиться? Код: #ifndef ORDERSMODEL_H Код: #include "OrdersModel.h" Название: Re: Checkbox-ы в QTableView как убрать? Отправлено: Пантер от Март 11, 2011, 10:29 Переопредели Qt::ItemFlags QAbstractItemModel::flags ( const QModelIndex & index ) const
Название: Re: Checkbox-ы в QTableView как убрать? Отправлено: alex-v от Март 11, 2011, 10:32 Пробовал.
Возвращаю отключённый флаг чекбокса - не помогло. Код: #include "OrdersModel.h" Название: Re: Checkbox-ы в QTableView как убрать? Отправлено: Пантер от Март 11, 2011, 10:33 А, тьфу, в data обработай Qt::CheckStateRole
Название: Re: Checkbox-ы в QTableView как убрать? Отправлено: alex-v от Март 11, 2011, 10:55 точно. спасибо.
Еще бы одну проблемку решить - как заливать всю текущую строку синим фоном? (раньше со стандартной моделью - работало. А теперь нет) Название: Re: Checkbox-ы в QTableView как убрать? Отправлено: Пантер от Март 11, 2011, 10:58 Qt::BackgroundColorRole, возможно. Вообще, почитай про роли.
Название: Re: Checkbox-ы в QTableView как убрать? Отправлено: alex-v от Март 11, 2011, 11:03 Да. Читал.
Эту роль видел. Проблема в том - как определить в методе data() что ячейка находится в текущей строке...? Название: Re: Checkbox-ы в QTableView как убрать? Отправлено: Пантер от Март 11, 2011, 11:06 ЕМНИП, за окраску текущей ячейки отвечают вьюха или делегат.
Название: Re: Checkbox-ы в QTableView как убрать? Отправлено: Disaron от Март 11, 2011, 23:46 На самом деле надо решить для себя, какую именно роль(и) надо переопределить. Для остального возвращать QSqlTableModel::data(item, role). Тогда лишнего переопределять не придется.
Название: Re: Checkbox-ы в QTableView как убрать? Отправлено: chu от Март 12, 2011, 02:46 точно. спасибо. м.б. так: Еще бы одну проблемку решить - как заливать всю текущую строку синим фоном? (раньше со стандартной моделью - работало. А теперь нет) Код: tableView->setSelectionBehavior(QAbstractItemView::SelectRows); Название: Re: Checkbox-ы в QTableView как убрать? Отправлено: alex-v от Март 12, 2011, 09:20 Да, всё получилось. Всем спасибо.
Текущая строка не выделялась из-за того, что я переопределил метод flags(). Убрал его - и всё ОК. |