Я получил QAbstractItemModel для кодирования собственного дерева данных, но QTreeView не отображается.
Большинство ответов, которые я видел на подобные вопросы, были решены из-за неправильного времени жизни переменной, поэтому вот мой код для распределения модели:
ui.tvHierarchy->setModel(
new MetaHierarchyModel(
cutOffExtension(
fileName.toStdString()
)
)
);
При построении модель заполняет свой корневой узел данными, а позже загружает больше данных по мере необходимости (через fetchMore
).
Я начал выводить каждую вызываемую функцию. Это журнал последовательности вызовов:
columnCount( QModelIndex(-1,-1,0x0,QObject(0x0) ) )
return 1
columnCount( QModelIndex(-1,-1,0x0,QObject(0x0) ) )
return 1
columnCount( QModelIndex(-1,-1,0x0,QObject(0x0) ) )
return 1
hasChildren( QModelIndex(-1,-1,0x0,QObject(0x0) ) )
return true
hasChildren( QModelIndex(-1,-1,0x0,QObject(0x0) ) )
return true
canFetchMore( QModelIndex(-1,-1,0x0,QObject(0x0) ) ))
return false
rowCount( QModelIndex(-1,-1,0x0,QObject(0x0) ) )
return 1
index( 0 , 0 , QModelIndex(-1,-1,0x0,QObject(0x0) ) )
return QModelIndex(0,0,0x987aa0,MetaHierarchyModel(0xa16970) )
hasChildren( QModelIndex(0,0,0x987aa0,MetaHierarchyModel(0xa16970) ) )
return true
columnCount( QModelIndex(-1,-1,0x0,QObject(0x0) ) )
return 1
parent( QModelIndex(0,0,0x987aa0,MetaHierarchyModel(0xa16970) ) )
return QModelIndex(-1,-1,0x0,QObject(0x0) )
index( 0 , 0 , QModelIndex(-1,-1,0x0,QObject(0x0) ) )
return QModelIndex(0,0,0x987aa0,MetaHierarchyModel(0xa16970) )
data( QModelIndex(0,0,0x987aa0,MetaHierarchyModel(0xa16970) ) , 13 )
return "Metaparticle 1"
columnCount( QModelIndex(-1,-1,0x0,QObject(0x0) ) )
return 1
parent( QModelIndex(0,0,0x987aa0,MetaHierarchyModel(0xa16970) ) )
return QModelIndex(-1,-1,0x0,QObject(0x0) )
index( 0 , 0 , QModelIndex(-1,-1,0x0,QObject(0x0) ) )
return QModelIndex(0,0,0x987aa0,MetaHierarchyModel(0xa16970) )
data( QModelIndex(0,0,0x987aa0,MetaHierarchyModel(0xa16970) ) , 13 )
return "Metaparticle 1"
Выход roleNames()
:
QHash((0, "display")(1, "decoration")(2, "edit")(3, "toolTip")(4, "statusTip")(5, "whatsThis"))
Затем последние четыре строки повторяются вечно (или, по крайней мере, до тех пор, пока я не потеряю терпение). Мне кажется, что корневые данные извлекаются, но они никогда не отображаются. Странно, что последний параметр data
, то есть int role
, имеет значение 13, которое не определено как какая-либо роль (все же я безоговорочно возвращаю допустимые строки).
Есть ли что-то, что я пропустил при реализации этого?
data
функции. Если вы посмотрите документацию, вы увидите, что роль 13 равнаQt::SizeHintRole
- я полагаю, ваше представление довольно запуталось, когда оно возвращает строку! - person Xavier Holt   schedule 31.08.2012QVariant()
else. Предположительно, у меня была другая ошибка тогда, и теперь у меня была эта проблема полностью. Не могли бы вы опубликовать это как ответ, чтобы я мог отметить его правильно? - person Nobody moving away from SE   schedule 31.08.2012