Qt5 Qtcreator usando uma função c ++ em main.qml para criar um arquivo / tmp /

5

Eu quero escrever um aplicativo para o Ubuntu Touch com base no modelo QtQuick2ApplicationViewer e o aplicativo precisa gravar em um arquivo (por exemplo, '/tmp/test.log').

Eu testei usando uma função / macro Q_INVOKABLE :

Q_INVOKABLE void QtQuick2ApplicationViewer::setData3(void) {

    qDebug() << "setData";

}

... e compartilhe por Q_INVOKABLE .

Mas não consigo chamar a função no meu .qml e recebi um erro:

...main.qml:289: ReferenceError: setData3 "is not defined"

Alguém tem um arquivo demo.pro para download?

Ou um método de trabalho para criar um arquivo usando uma função cpp + qml como .pro para fazer o download?

Trabalhando na versão qtcreator para o ubuntutouch?

    
por sUbuPack 11.03.2013 / 18:40

1 resposta

4

Eu mesmo encontrei a solução e quero explicar o que fiz de errado.

Esqueci em:

main.c

    #include <QQmlEngine>
    #include <QQmlComponent>
    #include "stringhelper.h"
   to 
    qmlRegisterType<StringHelper>("MyStringHelper", 1, 0, "StringHelper");

stringhelper.h:

    ...class...
    .....public slots:...
           Q_INVOKABLE void stringxx(void){
              qDebug() << "  stringhelper.h:stringxx GOT YOU !! :-) ";
           }

agora em main.qml:

    import MyStringHelper 1.0

    StringHelper {
            id: my_StringH
    }

    my_StringH.stringxx();

agora eu posso chamar minha função stringxx e funções mais poderosas im .qml

considera Sascha

    
por sUbuPack 14.03.2013 / 13:38