【发布时间】:2017-01-06 16:08:21
【问题描述】:
我有包含方法的 QML 文件。这些方法需要使用 QMetaObject::invokeMethod() 从 C++ 调用。
QML:
// MyItem.qml
import QtQuick 2.0
Item {
function signalBroker(name, value) {
if (name == "volume_radio") {
updateVolume(value);
} else if (name == "mute_radio") {
updateMute();
}
}
}
【问题讨论】:
-
嗯,问题的第二句回答了。
-
Qt文档没有很多例子,你有我的案例或者解释的例子吗?
-
你的意思是喜欢这个文档页面:doc.qt.io/qt-5/…?
-
随时调用invokeMethod()。
-
作为一般建议,如果您真的想要这个,我会说重新考虑。这会创建一个 C++ -> QML 依赖关系,即 C++ 依赖于具有特定 API 的特定对象存在于 QML 端。集成通常以相反的方式完成,以保持动态 QML 方面的灵活性