0

我们正在使用 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?
}
4

0 回答 0