-3
我想寫在C++和對象的機制,來自qml的信號,我怎麼能連接我的main.qml與main.cpp?如何連接qml對象,信號與C++中的機制和插槽?
最好的選擇將是(如果可能的話)的聲明,添加類似的目錄,這使得QML和C++因爲沒有每次插槽和兩個文件
我想寫在C++和對象的機制,來自qml的信號,我怎麼能連接我的main.qml與main.cpp?如何連接qml對象,信號與C++中的機制和插槽?
最好的選擇將是(如果可能的話)的聲明,添加類似的目錄,這使得QML和C++因爲沒有每次插槽和兩個文件
之間的信號參考從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();
}
是的,我看到了這一點,但我在這裏發帖子,因爲我不uderstand這一點,當我必須補充這一點,在那裏,做我要補充這幾行對每個信號插槽 –