2016-03-02 75 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这一点,当我必须补充这一点,在那里,做我要补充这几行对每个信号插槽 –