我已经注入专有的Qt(4.5.2)应用程序,添加了我自己的QtScript兼容版本,并设法访问我需要的所有信号。但是,当连接它们时(通过QtScript),我的函数永远不会被调用。
我已经提出了一些理论,为什么会这样,我已经测试了我能想到的一切,但我已经碰到了一点墙。注意,我从来没有任何连接异常。以下是我目前的理论:
这些理论中的任何一个都是合理的吗?如果没有,我错过了什么?
答案 0 :(得分:3)
经过大量的内部挖掘并提出了很多问题(在这里以及在Freenode上的#qt),我设法让它发挥作用。问题是我注入的代码在没有事件泵的本机线程中运行。实例化QEventLoop并定期调用processEvents()解决了这个问题。
答案 1 :(得分:0)
这个问题已经很老了,已经回答了但是对于那些寻求帮助的人以及上述不是一个好解决方案的人,你可能想考虑设置 Qt :: ConnectionType 连接语句到 Qt :: DirectConnection ,如下所示:
QObject::connect(scrollBar, SIGNAL(valueChanged(int)),
label, SLOT(setNum(int)),
Qt::DirectConnection);
哪个应该以不同的方式解决同样的问题。