Qt 如何将QML中声明的信号连接到C++;方法或lambda
我在QML中声明了如下矩形:Qt 如何将QML中声明的信号连接到C++;方法或lambda,qt,qml,signals-slots,qt5.15,Qt,Qml,Signals Slots,Qt5.15,我在QML中声明了如下矩形: Rectangle { objectName: "myquickitemobject" signal doSomething MouseArea { anchors.fill: parent onClicked: { doSomething() } } } QQuic
Rectangle {
objectName: "myquickitemobject"
signal doSomething
MouseArea {
anchors.fill: parent
onClicked: {
doSomething()
}
}
}
QQuickItem *my_quickitem = m_qml_item_root->findChild<QQuickItem*>("myquickitemobject");
QObject::connect(my_quickitem, SIGNAL(doSomething()), this, SLOT(DoSomething()));
可以将// main.cpp
QQuickItem *my_quickitem = m_qml_item_root->findChild<QQuickItem*>("myquickitemobject");
在类中声明如下所示的插槽:
Q_SLOT void DoSomething() {
std::cout << "Do something" << std::endl;
}
Q_槽空DoSomething(){
标准::cout
QQuickItem *my_quickitem = m_qml_item_root->findChild<QQuickItem*>("myquickitemobject");
QObject::connect(my_quickitem, SIGNAL(doSomething()), this, SLOT(DoSomething()));