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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Редактирование только одного столбца в QTableView  (Прочитано 4190 раз)
Денис
Гость
« : Март 22, 2010, 19:46 »

Доброго времени суток всем!

Проблема следующая: Отображаю в QTableView таблицу. Необходимо разрешить пользователю редактировать только один столбец из всего представления, остальные не должны открываться на редактирование. Подскажите пожалуйста как это сделать?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Март 22, 2010, 20:09 »

Поищи по форуму, вопрос поднимался.
Если используешь свою модель, то передавай нужные флаги. Еще можно через делегата.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
cya-st
Гость
« Ответ #2 : Март 23, 2010, 11:55 »

В модели переопредели функцию flags.
Пример:
Код:
Qt::ItemFlags MyModel::flags(const QModelIndex &index) const
{
    Qt::ItemFlags flags = QSqlQueryModel::flags(index);
    if (index.column() == 5 || index.column() == 9 || index.column() == 10)
        flags |= Qt::ItemIsEditable;

    return flags;
}
Перечислены поля которые будут редактироватся.
Записан
Денис
Гость
« Ответ #3 : Март 26, 2010, 00:10 »

Большое спасибо за помощь, завтра попробую!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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