Russian Qt Forum
Ноябрь 24, 2024, 07:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Qt4.2.2] Model-View read only  (Прочитано 5674 раз)
C.H.
Гость
« : Декабрь 09, 2006, 10:46 »

Привет всем!
Скажите как сделать в связке model-view  - view - только для чтения?
Юзаю QSqlRelationalTableModel в связке QTableView
Так вот хочю чтобы в QTableView нельзя было изменить данные?
Задача #1 - все данные только для чтения
Задача #2 - отедльные колонки только для чтения

Если заполняю модель "ручками" - тогда можно на МодельИндекс поставить флаг аля "read-only", а как быть с QSqlRelationalTableModel???

Help!
Записан
Alexei
Гость
« Ответ #1 : Декабрь 09, 2006, 16:15 »

Сабклассить QSqlRelationalTableModel и перекрыть метод flags. Так можно решить обе задачи
Записан
C.H.
Гость
« Ответ #2 : Декабрь 09, 2006, 16:34 »

вто-мто и дело
наследовать лень Улыбающийся
Записан
Tonal
Гость
« Ответ #3 : Декабрь 09, 2006, 17:10 »

QAbstractItemView::setEditTrigger(QAbstractItemView::NoEditTriggers);
Оно?
Записан
C.H.
Гость
« Ответ #4 : Декабрь 12, 2006, 01:24 »

Неа
Это тригеры Грустный
Записан
C.H.
Гость
« Ответ #5 : Февраль 13, 2007, 23:32 »

Цитата: "Alexei"
Сабклассить QSqlRelationalTableModel и перекрыть метод flags. Так можно решить обе задачи

Ага
ты был прав:
Код:
class MySqlTableModel : public QSqlTableModel {
//Q_OBJECT
public:
MySqlTableModel(QObject * parent = 0, QSqlDatabase db = QSqlDatabase() )
:QSqlTableModel(parent, db){}

Qt::ItemFlags flags(const QModelIndex &index) const
{
Qt::ItemFlags flags = QSqlQueryModel::flags(index);
//if (index.column() == 1 || index.column() == 2)
if (index.column() == 2)
flags |= Qt::ItemIsEditable;
return flags;
}

};


в assistant в разделе QtSql Module написанно Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 20.