假设我决定从我的模型中随机删除一些项目。我有对这些项目的引用,但这还不足以正确调用 beginRemoveRows()方法。它需要知道每个项目的QModelIndex。
但要获取项目的QModelIndex,我还需要知道父项的QModelIndex!
virtual QModelIndex index(int row, int column, const QModelIndex & parent = QModelIndex())
只有RootItem没有父级,因此不需要QModelIndex。所以我需要从那里开始并递归遍历所有孩子,直到我最终为每个项目提供适当的QModelIndex,如果这是正确的做事方式。
有没有更好的方法来获取随机项的QModelIndex?
答案 0 :(得分:0)
没关系。显然我可以使用 createIndex 方法为我的项目制作QModelIndex。
public void fillTreeViewByList()
{
connect.Open();
TreeViewColorDescNodes firstNode = new TreeViewColorDescNodes(); // Everything from here down is probably wrong...
tvDiscountMaintenance.Nodes.Add("Select All");
//firstNode has the instance of TreeViewColorDescNodes() which has list of items from DB
//So you need to iterate the items from this instance
foreach (string item in firstNode.ColDescNode)
{
//You need to create the tree node with text in item rather than List name
TreeNode colorDesc = new TreeNode(item);
//You need to add the tree node to the tree control rather than the string
tvDiscountMaintenance.Nodes[0].Nodes.Add(colorDesc);
}
}