qt - 使用 QT 的 QJSEngine 时如何找到信号的“发送者”
问题描述
我们正在使用 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?
}
解决方案
推荐阅读
- python - selenium webdriver .click() 不工作
- java - JSON 解析错误 - 无法调用“com.fasterxml.jackson.databind.JsonDeserializer.getObjectIdReader()”,因为“valueDes”为空
- r - 线性模型循环
- git - git log --oneline 不起作用,不显示任何内容
- c# - Entity Famework 从对象创建列
- reactjs - 页面加载和页面刷新时 Gatsby 闪烁 (FOUC)
- android - AIDE如何在手机上运行gradle
- recursion - 在 UML 序列图上的对象内调用私有方法
- python - Json 数据不会在一天结束时保存
- rest - @Multipart of cxf 包含文件内的头信息