[SailfishDevel] QML C++ Integration not working in Sailfish

christopher.lamb at thurweb.ch christopher.lamb at thurweb.ch
Wed Feb 26 12:31:11 UTC 2014


Hi Antonio

This works for me:

//Start BloomfiltersDemo.cpp
#ifdef QT_QML_DEBUG
#include <QtQuick>
#endif

#include <sailfishapp.h>
#include "bloomfilters.h"


int main(int argc, char *argv[])
{

     QGuiApplication *app = SailfishApp::application(argc, argv);
     QQuickView *view = SailfishApp::createView();

     Bloomfilters  * bloomfilters = new Bloomfilters();
     view->rootContext()->setContextProperty("bloomfiltersdata", bloomfilters);
     view->setSource(SailfishApp::pathTo("qml/BloomFiltersDemo.qml"));
     view->showFullScreen();

     return app->exec();
}
//End BloomfiltersDemo.cpp

//start bloomfilters.h
#ifndef BLOOMFILTERS_H
#define BLOOMFILTERS_H


#include <QObject>
#include <QDebug>
//#include "svn/bloom-read-only/bloom_filter.hpp"

class Bloomfilters : public QObject
{
     Q_OBJECT

public:
     Q_INVOKABLE  void generateFilterInvokable2() const ;
     explicit Bloomfilters(QObject *parent = 0);

     void generateFilter() ;

private:
     QString _k;
};

#endif // BLOOMFILTERS_H
//end bloomfilters.h

//start bloomfilters.cpp
#include "bloomfilters.h"

Bloomfilters::Bloomfilters(QObject *parent) :
     QObject(parent)
{
}

void Bloomfilters::generateFilterInvokable2() const {
     qDebug() << "Blooming Magic";
}
//end bloomfilters.cpp

//start FirstPage.qml
import QtQuick 2.0
import Sailfish.Silica 1.0

Page {
     id: page

     Component.onCompleted: {
         bloomfiltersdata.generateFilterInvokable2()
     }
}
//end FirstPage.qm

HtH
Chris

Zitat von antonio.cano.gomez at ovi.com:

> Hi Andrey,
>
> The output is: ReferenceError: bloomfilterdata is not defined
>
> I am calling it from a .js
>
> Some idea about how can I  make that this is also defined there.
>
> Thanks!
>
>
>
>
>
> El Miércoles 26 de febrero de 2014 12:18, Andrey Kozhevnikov  
> <coderusinbox at gmail.com> escribió:
>
> start app in terminal and show output please
>>
>>
>> On 26.02.2014 17:15, antonio.cano.gomez at ovi.com wrote:
>>
>> Hi Thomas,
>>>
>>> I did both modification but the code does not work yet.
>>>
>>> Here is the new code:
>>>
>>>         QGuiApplication *app = SailfishApp::application(argc,
>         argv);
>>>         QQuickView *view = SailfishApp::createView();
>>>
>>>         Bloomfilters  * bloomfilters = new Bloomfilters();
>>>        
>         view->rootContext()->setContextProperty("bloomfiltersdata",
>         bloomfilters);
>>>        
>         view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
>>>         view->showFullScreen();
>>>
>>>         return app->exec();
>>>
>>>
>>> El Miércoles 26 de febrero de 2014 12:01, Thomas Perl  
>>> <th.perl at gmail.com> escribió:
>>>
>>> On 2014-02-26 11:48, antonio.cano.gomez at ovi.com wrote:
>>>>
>>>>> I tried this:
>>>>>
>>>>>         QGuiApplication *app =
>                     SailfishApp::application(argc, argv);
>>>>>         QQuickView *view =
>                     SailfishApp::createView();
>>>>>         Bloomfilters  * bloomfilters = new
>                     Bloomfilters();
>>>>>
>                      
> view->setSource(SailfishApp::pathTo("qml/bloomfilter.qml"));
>>>>>         view->showFullScreen();
>>>>>
>                     view->rootContext()->setContextProperty("Bloomfilters",
>                     bloomfilters);
>>>>>         return app->exec();
>>>>>
>>>>> But it is not working yet.
>>>>
>>>> Two things:
>>>>
>>>>   1. Call setContextProperty() right before before
>                   setSource(), so it's
>>>> already available when the QML content is loaded.
>>>>   2. Use lowercase for context property names
>                   ("bloomfilters" instead of
>>>> "Bloomfilters"). In some places, QML interprets IDs
>                   starting with an
>>>> upper case letter as a type name, and that won't work
>                   then, therefore
>>>> stick to lowercase.
>>>>
>>>>
>>>> HTH :)
>>>> Thomas
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> _______________________________________________
> SailfishOS.org Devel mailing list
>>
>>
>> _______________________________________________
>> SailfishOS.org Devel mailing list
>>
>>





More information about the Devel mailing list