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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Опять о QTableWidget  (Прочитано 3631 раз)
qtист
Гость
« : Март 17, 2009, 11:58 »

Продолжаю бороться с QTableWidget  Смеющийся
Некоторые колонки в QTableWidget определены через
QItemDelegate ( созданы QLineEdit).
В этих же колонках создаются check состояния.
Так вопрос такой: когда  check=1 надо запретить редактировать эту ячейку,
ну и наоборот.
Пробовал делать через setFlags() - так запрещается вся ячейка: и checkbox и lineedit. Плачущий
Записан
spirit
Гость
« Ответ #1 : Март 17, 2009, 12:02 »

в делегате проверяй, если check == 1 возвращай "0" из createEditor.
Записан
qtист
Гость
« Ответ #2 : Март 17, 2009, 12:13 »

а как достучаться из делегата до checkbox,он создаётся так:

Код
C++ (Qt)
QTableWidgetItem *item = new QTableWidgetItem;
item->setCheckState(Qt::Unchecked);
Записан
spirit
Гость
« Ответ #3 : Март 17, 2009, 12:21 »

а как достучаться из делегата до checkbox,он создаётся так:

Код
C++ (Qt)
QTableWidgetItem *item = new QTableWidgetItem;
item->setCheckState(Qt::Unchecked);
Код
C++ (Qt)
QWidget *MyDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
...
   int state = index.data(Qt::Qt::CheckStateRole).toInt();
   if (state == Qt::Unchecked)
      return 0;
...
}
 
Записан
qtист
Гость
« Ответ #4 : Март 17, 2009, 12:31 »

блин,как всё просто  Строит глазки
spirit ,с меня стакан spirta. Смеющийся
Записан
spirit
Гость
« Ответ #5 : Март 17, 2009, 12:33 »

блин,как всё просто  Строит глазки
spirit ,с меня стакан spirta. Смеющийся

гы,  Смеющийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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