[英]Reading a QML array property from C++
給定 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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.