我想将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 *?

最佳答案

在QML中,this的值为currently undefined。将其传递给C++不会产生任何有意义的结果。无论其内容是什么,它都不是对当前QML项的引用。因此,请遵循您的第一个解决方案并传递ID。

关于c++ - C++中QML的类型是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48706985/

10-11 21:28