поставить делегата на Qtitan::GridTreeView

Рейтинг: 0Ответов: 1Опубликовано: 13.02.2023

для таблицы есть примеры:

Qtitan::GridTableColumn* column = (Qtitan::GridTableColumn*)view->getColumn(1);
column->setEditorType(GridEditor::DelegateAdapter);
GridDelegateAdapterEditorRepository* adapter = static_cast<GridDelegateAdapterEditorRepository*>(column->editorRepository());
adapter->setDelegate(new StarDelegate);

как то же сделать для дерева? если по аналогии, то для column вернет nullptr.

Ответы

▲ 0

Работает по аналогии с применением делегата к табличному представлению (демо пример ниже) Ошибка была в попытке получить column (getColumn(1)) до установки модели.

Qtitan::TreeGrid *m_tree = new Qtitan::TreeGrid(this);
m_tree->setViewType(Qtitan::TreeGrid::TreeView);
Qtitan::GridTreeView* view = m_tree->view<Qtitan::GridTreeView>();
view->beginUpdate();
view->options().setGestureEnabled(true);
view->options().setShowFocusDecoration(true);
view->setModel(model);
view->endUpdate();
void* columnv = view->getColumn(1);
Qtitan::GridTableColumn* column = (Qtitan::GridTableColumn*)view->getColumn(1);
column->setEditorType(GridEditor::DelegateAdapter);
GridDelegateAdapterEditorRepository* adapter = static_cast<GridDelegateAdapterEditorRepository*>(column->editorRepository());
adapter->setDelegate(new StarDelegate);
adapter->setDefaultValue(QVariant::fromValue(StarRating("5555555555")), Qt::EditRole);