从C+;访问已注册的类型实例+;(例如main.cpp) 我在Me.cpp中注册了C++类(CaseIONNEX),如: #include "class_header.hpp" #include <QtQuick/QQuickView> #include <QGuiApplication> int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); qmlRegisterType<class_name>("ClassInstance", 1, 0, "ClassInstance"); QQuickView view; view.setResizeMode(QQuickView::SizeRootObjectToView); view.setSource(QUrl("qml/main.qml")); view.show(); return app.exec(); } #包括“class_header.hpp” #包括 #包括 int main(int argc,char*argv[]) { QGUI应用程序应用程序(argc、argv); qmlRegisterType(“ClassInstance”,1,0,“ClassInstance”); QQuickView视图; setResizeMode(QQuickView::SizerootObject-view); view.setSource(QUrl(“qml/main.qml”); view.show(); 返回app.exec(); }

从C+;访问已注册的类型实例+;(例如main.cpp) 我在Me.cpp中注册了C++类(CaseIONNEX),如: #include "class_header.hpp" #include <QtQuick/QQuickView> #include <QGuiApplication> int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); qmlRegisterType<class_name>("ClassInstance", 1, 0, "ClassInstance"); QQuickView view; view.setResizeMode(QQuickView::SizeRootObjectToView); view.setSource(QUrl("qml/main.qml")); view.show(); return app.exec(); } #包括“class_header.hpp” #包括 #包括 int main(int argc,char*argv[]) { QGUI应用程序应用程序(argc、argv); qmlRegisterType(“ClassInstance”,1,0,“ClassInstance”); QQuickView视图; setResizeMode(QQuickView::SizerootObject-view); view.setSource(QUrl(“qml/main.qml”); view.show(); 返回app.exec(); },c++,qml,qt5,qt-quick,C++,Qml,Qt5,Qt Quick,我已经确定注册这个类会创建一个对象的实例,我只需要一个实例。QML端可以很好地访问这个实例。如何从C++侧访问同一实例,例如,在上面显示的MIN .CPP中? 提前谢谢 qmlRegisterType不创建实例。它向qml引擎注册ClassInstance类型,以便您可以在qml中创建ClassInstance实例。当您说您可以在QML侧访问这个实例时,实际上是在QML中创建了一个新实例,它不能从C++中访问。 如果您打算创建一个可以从QML和C++访问的实例,那么您需要的是上下文属性。 Cla

我已经确定注册这个类会创建一个对象的实例,我只需要一个实例。QML端可以很好地访问这个实例。如何从C++侧访问同一实例,例如,在上面显示的MIN .CPP中?


提前谢谢

qmlRegisterType不创建实例。它向qml引擎注册ClassInstance类型,以便您可以在qml中创建ClassInstance实例。当您说您可以在QML侧访问这个实例时,实际上是在QML中创建了一个新实例,它不能从C++中访问。 如果您打算创建一个可以从QML和C++访问的实例,那么您需要的是上下文属性。

ClassInstance obj;
view.rootContext()->setContextProperty("myInstance", &obj);

现在可以在qML中访问MySual实例和C++代码中的Objv实例。文档。

谢谢lijo的回复,我想可能就是这样。我要试一试。