我想将QML项目引用传递给C ++。它明确地使用id:
Item {
id: qmlitem
x: CppObj.getValue(qmlitem)
}
// c++
int getValue(QObject * qmlItem) {
return 0;
}
如果我通过了这个:
Item {
x: CppObj.getValue(this)
}
QObject * qmlItem是0x0。
如果我更换
int getValue(QObject * qmlItem)
通过
int getValue(void * qmlItem)
qmlItem不是0x0 - 它有一个值但是哪个类型?是否可以从中获取QObject *?
答案 0 :(得分:3)
在QML中,this
的值为currently undefined。将它传递给C ++不会产生任何有意义的结果。无论其内容是什么,它都不是对当前QML项目的引用。因此,请坚持使用您的第一个解决方案并传递ID。