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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Чек каждого объекта в simpletreemodel.  (Прочитано 2758 раз)
Zerkin
Чайник
*
Offline Offline

Сообщений: 98


Просмотр профиля
« : Ноябрь 22, 2010, 10:15 »

Всех приветствую. Сделал модель дерева по примеру  simpletree model, надо чтобы каждый элемент имел чекбокс.

 
Код:
Qt::ItemFlags TreeModel::flags(const QModelIndex &index) const
 {
     if (!index.isValid())
         return 0;

return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable ;
 }

Почему-то обрабатывается только  Qt::ItemIsEnabled | Qt::ItemIsSelectable =\
Что я сделал не так?
Записан
UVV
Гость
« Ответ #1 : Ноябрь 22, 2010, 10:52 »

Нужно обработать Qt::CheckStateRole в data().
Записан
Zerkin
Чайник
*
Offline Offline

Сообщений: 98


Просмотр профиля
« Ответ #2 : Ноябрь 22, 2010, 11:15 »

А можно поподробнее? если не сложно.
Записан
UVV
Гость
« Ответ #3 : Ноябрь 22, 2010, 11:34 »

Код:
MyModel::data(...)
{
    ...
    else if (role == Qt::CheckStateRole) 
    {
        if (aNode->valueIsTrue())
            return Qt::Checked;
        else
            return Qt::Unchecked;
    }
    ...
}

MyModel::setData(...)
{
    ...
    if (role == Qt::CheckStateRole) {                                 
        aNode->setValue(value.toBool());
        emit dataChanged(parentIndex, parentIndex);
    }
    ...
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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