2016-03-02 40 views

回答

1

之間的信號參考從documentation一個數據庫,這裏有一個方法來QML對象連接到C++

// MyItem.qml 

import QtQuick 2.0 

Item { 
    id: item 
    width: 100; height: 100 

    signal qmlSignal(string msg) 

    MouseArea { 
     anchors.fill: parent 
     onClicked: item.qmlSignal("Hello from QML") 
    } 
} 


class MyClass : public QObject 
{ 
    Q_OBJECT 
public slots: 
    void cppSlot(const QString &msg) { 
     qDebug() << "Called the C++ slot with message:" << msg; 
    } 
}; 

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

    QQuickView view(QUrl::fromLocalFile("MyItem.qml")); 
    QObject *item = view.rootObject(); 

    MyClass myClass; 
    QObject::connect(item, SIGNAL(qmlSignal(QString)), 
        &myClass, SLOT(cppSlot(QString))); 

    view.show(); 
    return app.exec(); 
} 
+0

是的,我看到了這一點,但我在這裏發帖子,因爲我不uderstand這一點,當我必須補充這一點,在那裏,做我要補充這幾行對每個信號插槽 –