QML與c++互動的一些坑
阿新 • • 發佈:2019-01-23
這個是轉載的,【lvliang2008】,
#include <QtGui/QApplication>
#include <QtDeclarative/QDeclarativeView>
#include <QtDeclarative/QDeclarativeEngine>
#include <QtDeclarative/QDeclarativeComponent>
#include "person.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
qmlRegisterType<Person>("People" ,1,0,"Person");
//qmlRegisterType<Person>();
QDeclarativeView qmlView;
qmlView.setSource(QUrl::fromLocalFile("../UICtest/UICtest.qml"));
qmlView.show();
return a.exec();
}
QML的顯示方式大致有兩種,一種是QDeclarativeView qmlView; 和QQuickView的方式,這種使用 qmlRegisterType(“People”,1,0,”Person”); 註冊然後在qml中import後,就可以使用了。
第二種是 QQmlApplicationEngine engine;使用qmlRegisterType能註冊,但是就是用不了,不知道為什麼。然後使用
engine.rootContext()->setContextProperty(“imageprocess”,new imageProcess);
這個方式,在qml就是像物件一樣的使用了。