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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите с делегатом  (Прочитано 2712 раз)
i_rik_mik
Гость
« : Октябрь 27, 2014, 16:00 »

доброго времени суток.
Есть TreeView  и model для него отображает bookmark (dir)
но мне не нравиться отступ в view ничего лучше не придумал сделал свой делегат от QStyledItemDelegate
где в paint прописал
Код:
if (!index.isValid())
        return;
QStyleOptionViewItem opt = option;
ItemBM *item = static_cast<ItemBM*>(index.internalPointer());
if(index.column() == 0 && item->childCount() == 0)
{               
       opt.rect.setLeft(20);
}
QStyledItemDelegate::paint(painter, opt, index);
теперь дети отображаются ровно под родителем.
Но надо еще и редактировать детей поэтому createEditor
Код:
QStyleOptionViewItem opt = option;
if(index.isValid() && index.column() == 0)
{       
      ItemBM *item = static_cast<ItemBM*>(index.internalPointer());
      if(item->childCount() == 0)
      {
           opt.rect.setLeft(20);
      }
}
return QStyledItemDelegate::createEditor(parent, opt, index);
И редактор ровно в том месте где не надо.  QStyleOptionViewItem opt на него не влияют
Почему ? что не так  помогиет нубу




Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #1 : Ноябрь 05, 2014, 11:31 »

а отступ нигде не задается программно?
Записан
Kolobok
Гость
« Ответ #2 : Ноябрь 05, 2014, 12:05 »

QTreeView::indentation
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #3 : Ноябрь 06, 2014, 12:34 »

точно, я не помнил как оно называется, не нужно изобретать велосипед, достаточно почитать документацию по конкретному виджету
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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