|
|
|
ShogunC |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 7.8.2008 Где: Киев Репутация: нет Всего: нет |
Извините за тупой вопрос, но потратил целы день и не смог найти решения на простой вопрос(((
Как простым способом запретить редактирование колонки в QTableView. Вроде обыденная вещь, но простого решения не накопал Криво косо сделать могу, но это уже принципиально для меня увидеть тривиальное и банальное решение(((( |
|||
|
||||
Sovereign |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 58 Регистрация: 7.11.2006 Репутация: 1 Всего: 4 |
ну дык в модели для tableWidget реализован метод
bool setData(const QModelIndex& index, const QVariant& value, int nRole); так и не давай редактировать данные, где index.column() равен нередактируемой колонке Это сообщение отредактировал(а) Sovereign - 2.2.2010, 17:10 |
|||
|
||||
panukov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 8.4.2009 Где: Омск Репутация: нет Всего: нет |
если полностью таблицу, то
|
|||
|
||||
ShogunC |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 7.8.2008 Где: Киев Репутация: нет Всего: нет |
Я это все понимаю, я знаю как запретить редактировать колонку...
Но должен быть тривиальный - самый простой способ запретить редактировать колонку, мне интересно как????? |
|||
|
||||
KrupaKarlo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.6.2006 Репутация: нет Всего: нет |
если модель данных QStandardItemModel, то для элементов нужной колонки задавай свойство
void QStandardItem::setEditable ( bool editable ) Это сообщение отредактировал(а) KrupaKarlo - 4.3.2010, 09:55 |
|||
|
||||
AntoshaMarchenko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 22.5.2006 Репутация: нет Всего: нет |
а я переопределял mouseDoubleClickEvent и душил двойной клик, если мышь над неугодной ячейкой
|
|||
|
||||
fancy86 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 30.3.2011 Репутация: нет Всего: нет |
Можно определить свой класс нередактируемого делегата, наследника класса QStyledItemDelegate, в котором переопределен метод createEditor() и он возвращает 0.
Пример:
Затем устанавливаем объект этот класса в качестве делегата для нужной нам колонки QTableView:
В результате, колонка QTableView, для которой установлен этот делегат, станет нередактируемой, а остальные колонки останутся редактируемые. |
||||
|
|||||
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |