gpt4 book ai didi

c++ - 从委托(delegate)中的 C++ 模型获取数据

转载 作者:行者123 更新时间:2023-11-30 05:44:34 24 4
gpt4 key购买 nike

我有一个 C++ 端的模型和一个 TreeView

TreeView {
id: view
itemDelegate: Rectangle{
property int indexOfThisDelegate: model.index
Text {
text:???
font.pixelSize: 14
}
}
model: myModel
onCurrentIndexChanged: console.log("current index", currentIndex)
TableViewColumn {
title: "Name"
role: "type"
resizable: true
}

onClicked: console.log("clicked", index)
onDoubleClicked: isExpanded(index) ? collapse(index) : expand(index)
}

如何从我的 TreeItem 中获取数据?问题是 indexOfThisDelegateinteger 而不是 QModelIndex,所以我想要类似的东西

Text {
text:model.getDescription(currentlyPaintedModelIndex)
font.pixelSize: 14
}

或者我应该在整数和树 QModelIndex 之间建立映射吗?

最佳答案

好吧,我自己想通了

在模型中:

QHash<int, QByteArray> MenuTreeModel::roleNames() const
{
QHash<int, QByteArray> roles;
roles[TitleRole] = "Title";
return roles;
}

// of course it could me more complex with many roles
QVariant MenuTreeModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid())
{
return QVariant();
}

MenuTreeItem *item = itemForIndex(index);

if (role != TitleRole)
{
return QVariant();
}
QString str = item->data(index.column()).toString();
return item->data(index.column());
}

我们的自定义树项(例如):

class MenuTreeItem
{
// item data, contains title
QList<QVariant> m_itemData;
};

在 qml 中:

TreeView {
id: view
itemDelegate: Rectangle{
Text {
text:model.Title
font.pixelSize: 14
}
}
model: myModel
}

关于c++ - 从委托(delegate)中的 C++ 模型获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29748091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com