【发布时间】:2018-10-19 16:21:04
【问题描述】:
场景:
我有一个在 Qt 5.9.4 商业版上运行的 Qt 应用程序。它是一个基于QtQuick 和QML 的应用程序,在iOS 和Android 上运行。
我在 UI 上有一个 QML 项目,如下所示:
SomeItem {
text: qsTr("Some Item")
objectName: "someitem"
visible: false
onClicked: {
console.log("Some item was clicked")
}
}
我有一个可以轻松控制SomeItem属性的C++函数。
void MyCppClass::Func() {
QQuickItem *someItem = qml_engine->rootObjects()[0]->findChild<QQuickItem*>("someitem");
someItem->setVisible(true); // this works
// How to listen to someItem's onClick event here
}
问题:
我想在 C++ 方法或 lambda 中收听 someItem 的 onClick 事件,而不更改 QML 中的任何内容。基本上从 C++ 端本身连接到someItem 的 onClick 信号信号。我该怎么做?
【问题讨论】:
标签: c++ qt qml qquickitem