1. 程式人生 > >QML與c++互動的一些坑

QML與c++互動的一些坑

這個是轉載的,【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就是像物件一樣的使用了。