2017-05-24 25 views
0

私の問題は、信号とスロットの接続をcppとqmlファイルの間で得ることができないことです。 まず、Webでいくつかのソリューションを見つけましたが、機能しません。 私は間違いが私のものだと確信していますが、私はそれを見つけられませんでした。QMLとC++の間の信号とスロット

main.cppに:

#include <QGuiApplication> 
#include <QQmlApplicationEngine> 
#include <QQuickWindow> 
#include <QQmlContext> 
#include "Hotfolder.h" 

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

    QScopedPointer<cReadJson> jsonReader(new cReadJson); 
    QScopedPointer<cHotfolder> hotfolder(new cHotfolder); 

    QQmlApplicationEngine engine; 
    engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); 

    engine.rootContext()->setContextProperty("jsonReader", jsonReader.data()); 
    engine.rootContext()->setContextProperty("hotfolder", hotfolder.data()); 

    QObject *topLevel = engine.rootObjects().at(0); 
    QQuickWindow *window = qobject_cast<QQuickWindow *>(topLevel); 

    QObject::connect(&cHotfolder, SIGNAL(sigNewOrder()), window, SLOT(
    // Here is the mistake, that I can't find the Slot in QML 
    return app.exec(); 
} 

これは私のmain.cppにファイルです。このファイルでは、cppファイルからSignalを見つけましたが、QMLのSlotでは見つかりませんでした。

main.qml:

function bla() 
{ 
    console.log("bla") 
} 

これは私のmain.qmlファイル内の関数です。

だからどこの間違い?

事前に感謝します。

ベン

+1

に[C++信号の可能性の重複QML SLOT in Qt](https://stackoverflow.com/questions/8834147/c-signal-to-qml-slot-in-qt) – BaCaRoZzo

+0

@BaCaRoZzo、私は思いますその解決策は私のほうがずっと異なっています。 – Ben

+0

他の答えは、問題への正しいアプローチをしています。 – BaCaRoZzo

答えて

0

溶液である:

わずかQML内からではなくC++

例からの信号に接続します。

Component.onCompleted: hotfolder.sigNewOrder.connect(bla)

関連する問題