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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTableWidget, setCheckState, только для чтения  (Прочитано 6291 раз)
aliks-os
Гость
« : Апрель 11, 2011, 17:35 »

Имеется QTableWidget, в некоторые ячейки устанавливаю галки. Сама таблица настроена на НЕ срабатывания режима редактирования. Ячейки, в которых просто текст не редактируются, как и положено. Однако состояние галок можно изменить. Пробовал поэкспериментировать с флагами - не помогло. Как правильно запретить изменение состояние галок.
Код я создаю элемент  и добавляю его в таблицу
Код:
            newItem = new QTableWidgetItem("");
            if (mI->record(i).value("non_unique").toInt() == 0) {
                newItem->setCheckState(Qt::Checked);
            } else {
                newItem->setCheckState(Qt::Unchecked);
            }
            newItem->setFlags(newItem->flags() &= ~Qt::ItemIsEditable);
            newItem->setFlags(newItem->flags() &= ~Qt::ItemIsUserCheckable);
            newItem->setFlags(Qt::NoItemFlags);
            ui->tableW_indexes->setItem(row, 2, newItem);

Записан
mutineer
Гость
« Ответ #1 : Апрель 11, 2011, 17:38 »

Делай через ModelView, там больше контроля над всем этим
Записан
Fess
Гость
« Ответ #2 : Апрель 12, 2011, 05:40 »

попробуйте просто
newItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable);
как вариант - сделайте наследника QTableWidgetItem и переопределите метод flags()
Записан
aliks-os
Гость
« Ответ #3 : Апрель 12, 2011, 10:41 »

Делай через ModelView, там больше контроля над всем этим

Модельная система меня в данном случае не устраивает, я наоборот ушел от нее.

Вопрос решил. При помощи флагов. Однако обнаружил странный глюк...хм....на компе сбился календарь и Qt Creator почему то странным образом при компиляции не вносил изменения, т.е. когда я установил флаги они факту не откомпилились. Календарь поправил, заново откомпилил и все заработало как надо.
Тему можно считать закрытой
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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