Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] QTableView: запрет редактирования колонки |
Автор: ShogunC 2.2.2010, 16:46 |
Извините за тупой вопрос, но потратил целы день и не смог найти решения на простой вопрос((( Как простым способом запретить редактирование колонки в QTableView. Вроде обыденная вещь, но простого решения не накопал ![]() Криво косо сделать могу, но это уже принципиально для меня увидеть тривиальное и банальное решение(((( |
Автор: Sovereign 2.2.2010, 17:09 |
ну дык в модели для tableWidget реализован метод bool setData(const QModelIndex& index, const QVariant& value, int nRole); так и не давай редактировать данные, где index.column() равен нередактируемой колонке |
Автор: panukov 2.2.2010, 20:09 | ||
если полностью таблицу, то
|
Автор: ShogunC 2.2.2010, 22:00 |
Я это все понимаю, я знаю как запретить редактировать колонку... Но должен быть тривиальный - самый простой способ запретить редактировать колонку, мне интересно как????? ![]() |
Автор: KrupaKarlo 4.3.2010, 09:54 |
если модель данных QStandardItemModel, то для элементов нужной колонки задавай свойство void QStandardItem::setEditable ( bool editable ) |
Автор: AntoshaMarchenko 4.3.2010, 13:13 |
а я переопределял mouseDoubleClickEvent и душил двойной клик, если мышь над неугодной ячейкой |
Автор: fancy86 30.3.2011, 14:26 | ||||
Можно определить свой класс нередактируемого делегата, наследника класса QStyledItemDelegate, в котором переопределен метод createEditor() и он возвращает 0. Пример:
Затем устанавливаем объект этот класса в качестве делегата для нужной нам колонки QTableView:
В результате, колонка QTableView, для которой установлен этот делегат, станет нередактируемой, а остальные колонки останутся редактируемые. |