3

QVariantListaを another 内にネストしようとするとQVariantList、結果はサブリストではなく、2 つのリストのフラット マージになります。

デモコード:

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 に答える