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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по QTreeview  (Прочитано 4195 раз)
astramax57
Гость
« : Январь 08, 2009, 12:32 »

Приветствую всех!
Вопрос в следующем:
если использую Qtreewidget, то на экране получается следующее:

Если использую QTreeView, то результат немного отличается:

Как видно появляются отступы перед текстом (выделены красным). Как от них избавиться?
В свойствах Qtreeview ничего не нарыл...

Блин, картинки не увеличиваются. Хотя  и так видно вроде
« Последнее редактирование: Январь 08, 2009, 12:34 от astramax57 » Записан
ритт
Гость
« Ответ #1 : Январь 08, 2009, 13:07 »

а что за модель во втором случае? что возвращает data(...) для декоративных ролей?
Записан
astramax57
Гость
« Ответ #2 : Январь 11, 2009, 11:17 »

Добрый день, извините за паузу - праздники )))

Действительно, дело было в ролях. Было так:

Код:
QVariant message_model::data(const QModelIndex &index, int role) const
{
    if (!index.isValid())
        return QVariant();

    if (role != Qt::DisplayRole && role != Qt::DecorationRole)
        return QVariant();
 
message_model_item *item = getItem(index);
    return item->data(index.column());
}

Т.е. для колонки, где должна быть только иконка независимо от роли я отдавал данные.
Теперь так:

Код:
QVariant message_model::data(const QModelIndex &index, int role) const
{
   if (!index.isValid())
        return QVariant();

    if (role != Qt::DisplayRole && role != Qt::DecorationRole)
        return QVariant();

int col = index.column();

if(role == Qt::DisplayRole && (col == 1 || col == 2))
return QVariant();
else if(role == Qt::DecorationRole && (col == 0 || col == 3))
return QVariant();
 
message_model_item *item = getItem(index);
    return item->data(col);
}

Для текстовых колонок отдаю данные только для роли DisplayRole, а для колонок с иконками -  только для DecorationRole

Спасибо Константин, направил в нужном направлении

Модераторам: тему можно закрывать или удалять - на ваше усмотрение )
« Последнее редактирование: Январь 11, 2009, 11:22 от astramax57 » Записан
Dendy
Гость
« Ответ #3 : Январь 11, 2009, 11:25 »

Не надо удалять. А то завтра кто-то создаст такую же.
Записан
ритт
Гость
« Ответ #4 : Январь 11, 2009, 12:15 »

согласен
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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