gpt4 book ai didi

c++ - 从 C++ 读取 QML 数组属性

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:03:30 25 4
gpt4 key购买 nike

给定的 QML 例如:

Item {
objectName: "myitem"
property var myarr: [1,2,3]
}

如何从 C++ 读取它?

以下不起作用:

QObject* item = root->findChild<QObject*>("myitem");
QVariant value = item->property("myarr");

value.isValid() 返回 true 时,如果我查询 QMetaType::typeName( QMetaType::Type(int(value.type())) )它产生“QWidget*”。

(在 x86 上使用 Qt 5.9.4)

最佳答案

这将返回 QVariant 列表,因为它是最通用的类​​型,在下一个示例中,我将其解压并将其存储在容器中:

if(QObject *item = root->findChild<QObject *>("myitem")){
std::vector<int> vector; // another option std::vector<float>;
for(const QVariant & v: item->property("myarr").toList()){
vector.push_back(v.toInt()); // another option toFloat();
}
qDebug() << vector;
}

关于c++ - 从 C++ 读取 QML 数组属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55107490/

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