![](/img/trans.png)
[英]Should I use QVariant or MyCustomType* to pass an object from Qml to C++?
[英]Is there possible pass Javascript Object from qml as QVariant to c++ layer as a parameter of slot?
我嘗試將 Object 從 qml 傳遞給 c++ 作為插槽的參數,是否有可能進入 Z6CE809EACF900BA1625EZ0FA? 在 c++ 的插槽中,我有空變量 QVariant(QJSValue, )。 我需要將 Object 作為 map 傳遞給 c++ (QMap<QString,QString>)。 是否可以通過這種方式傳遞 object ?
一些.h
class Some : public QObject
{
Q_OBJECT
public slot:
Q_INVOKABLE void someSlot(QVariant variableToPass);
}
一些.cpp
void Some :: someSlot(QVariant variableToPass){
qDebug()<<"Object from qml"<< variableToPass; // QVariant(QJSValue, ) empty variable!!!!!!!!!!!!!!
qDebug()<<"variableToPass.canConvert<QJSValue>()"<<variableToPass.canConvert<QJSValue>();//true, but empty!!!
QJSValue jsValue = variableToPass.value<QJSValue>();
QMap<QString,QString> data = jsValue.toVariant().value<QMap<QString,QString>>();
}
some2.qml
Item {
Button {
onClicked: registeredInQmlVar.someSlot({"Login":"Cash","Password":"123"})//call slot and pass Object with two parameters
}
}
我的錯誤是在傳遞的 object 的鍵中引用並使用 QMap<QString,QVariant> data = variableToPass.toMap(); 進行轉換
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.