web-dev-qa-db-ja.com

main.qmlのc ++関数を使用してファイル/ tmp /を作成するQt5 Qtcreator

QtQuick2ApplicationViewerテンプレートに基づいてUbuntu Touch用のアプリを作成したいのですが、アプリはファイル(例: '/tmp/test.log')に書き込む必要があります。

関数/マクロQ_INVOKABLEを使用してテストしました:

Q_INVOKABLE void QtQuick2ApplicationViewer::setData3(void) {

    qDebug() << "setData";

}

...Q_INVOKABLEで共有します。

しかし、.qmlで関数を呼び出すことができず、エラーが発生しました。

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

ダウンロードできるdemo.proファイルがありますか?

または、ダウンロードする.proとしてcpp-function + qmlを使用してファイルを作成する作業方法ですか?

Ubuntutouchのqtcreator-versionで作業していますか?

5
sUbuPack

自分で解決策を見つけたので、間違ったことを説明したいと思います。

忘れてました:

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 !! :-) ";
           }

今main.qmlに:

    import MyStringHelper 1.0

    StringHelper {
            id: my_StringH
    }

    my_StringH.stringxx();

今、私はstringxx関数とより強力な関数im .qmlを呼び出すことができます

よろしく

4
sUbuPack