gpt4 book ai didi

qt - 如何在 QAbstractItemModel 和 QTreeView 类中查找子项?

转载 作者:行者123 更新时间:2023-12-03 23:27:21 25 4
gpt4 key购买 nike

问题 : 如何在 QTreeView 中查找子项目已加载 QAbstractItemModelmodel->match() 的模型方法?

问题 :model->match()找不到子项目,wtf?!

这是示例:

alt text

从图片中可以看出,我正在尝试扩展 Layouts带有此代码的子项:

void Dialog::restoreState(void)
{
// get list
QSettings settings("settings.ini", QSettings::IniFormat);
settings.beginGroup("MainWindow");
QStringList List = settings.value("ExpandedItems").toStringList();
settings.endGroup();

foreach (QString item, List)
{
if (item.contains('|'))
item = item.split('|').last();
// search `item` text in model
QModelIndexList Items = model->match(model->index(0, 0), Qt::DisplayRole, QVariant::fromValue(item));
if (!Items.isEmpty())
{
// Information: with this code, expands ONLY first level in QTreeView
view->setExpanded(Items.first(), true);
}
}
}

哪里 settings.ini文件包含:
[MainWindow]
ExpandedItems=Using Containers, Connection Editing Mode, Form Editing Mode, Form Editing Mode|Layouts

PS:根项目在启动时成功扩展!

最佳答案

这是解决方案:

QModelIndexList Items = model->match(
model->index(0, 0),
Qt::DisplayRole,
QVariant::fromValue(item),
2, // look *
Qt::MatchRecursive); // look *
  • *如果没有该参数 match() 函数仅搜索 1 个级别
  • 关于qt - 如何在 QAbstractItemModel 和 QTreeView 类中查找子项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3290704/

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