我们正在使用 QJSEngine 为我们的 QT 应用程序提供脚本。
在 C++ QObject 派生类中,您可以访问sender()
方法来访问发出信号的对象。
ToolManager::ToolManager(QObject parent) {
connect(parent, &QAction::triggered, toolManager, &ToolManager::onTool_Changed);
}
void ToolManager::onTool_Changed() {
auto* action = dynamic_cast<QAction*> (sender()); //access the sender
// do something here
}
你如何在 qjsengine() 中运行的 JavaScript 内部做同样的事情?
initialize(props) { //called from C++ code
for(prop in props) {
prop.valueChanged.connect(this, this.onValueChanged); //sign up for the value changed signal
}
}
onValueChanged(newValue) {
let prop= sender(); //how do you access the sender?
}