Russian Qt Forum

Qt => Model-View (MV) => Тема начата: i_rik_mik от Октябрь 27, 2014, 16:00



Название: Помогите с делегатом
Отправлено: 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 на него не влияют
Почему ? что не так  помогиет нубу






Название: Re: Помогите с делегатом
Отправлено: Fregloin от Ноябрь 05, 2014, 11:31
а отступ нигде не задается программно?


Название: Re: Помогите с делегатом
Отправлено: Kolobok от Ноябрь 05, 2014, 12:05
QTreeView::indentation


Название: Re: Помогите с делегатом
Отправлено: Fregloin от Ноябрь 06, 2014, 12:34
точно, я не помнил как оно называется, не нужно изобретать велосипед, достаточно почитать документацию по конкретному виджету