3

当我尝试将 a 嵌套QVariantList在 anotherQVariantList中时,结果是两个列表的平面合并,而不是子列表。

演示代码:

QVariantList container;

QVariantList nested() << "bar" << "baz";

container.append("foo");  // or container << "foo";
container.append(nested); // or container << nested; 

我得到的(缩进是我的):

QVariant(QVariantList,
  QVariant(QString, "foo"),
  QVariant(QString, "bar"),
  QVariant(QString, "baz"),
)

我的期望:

QVariant(QVariantList,
  QVariant(QString, "foo"),
  QVariant(QVariantList, 
    QVariant(QString, "bar"),
    QVariant(QString, "baz")
  )
)
4

1 回答 1

6

自己找到解决方案。

这是由于 QList 的append过载:

void QList::append(const QList & value)

这是一个过载功能。

将值列表的项目附加到此列表。

解决方案是使用方法追加项目insert

QVariantList l;
l.insert(l.size(), QVariant());
于 2015-12-29T00:57:40.120 回答