Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Модель/Представление _ Редактирование QTableView

Автор: Max Payne 27.5.2010, 21:47

Проблема:
есть QTableView который заполняеться с QSqlTableModel *model.
Как сделать определеный столбец редактируемый а остальное нет?
view->setEditTriggers(QAbstractItemView::NoEditTriggers) - делает нередактируемой всю таблицу... подскажите...

Автор: Litkevich Yuriy 27.5.2010, 22:34

Если имеющуюся модель не трогать, то два варианта:
1) Сделать своего делегата, который не позволит редактировать и установить его для соответствующих столбцов
2) Сделать модель-посредник (proxy model), которая будет возвращать нужные флажки (редактируемый или не редактируемый элемент)

Автор: Max Payne 27.5.2010, 23:24

ПРосто делегировать ЛайнЕдит и делать неактивной ее и все?

Автор: Litkevich Yuriy 28.5.2010, 9:07

нет, просто в createEditor верни нуль.

Автор: Max Payne 29.5.2010, 0:58

В два столбца в таблице делегировал ComboBox, а в остальные QLineEdit->setReadOnly;
Как можно отследить изменение индекса у комбо бокса и если он например 1 перейти к редактированию сл. ячейки где делегирвана QLineEdit?
через конеkт или в createEditor() ?

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)