【发布时间】:2014-08-28 12:32:17
【问题描述】:
Qt 问题:
我正在从线程 A 上运行的对象 A 向线程 B 上运行的对象 B 发送信号。 我还通过覆盖对象 B 中的虚拟事件函数来处理自定义事件。
面临的问题:当对象 A 发出任何信号时,对象 B 中的相应插槽不会被调用,而是被对象 B 覆盖的事件函数被调用。那么如何从接收到的 QEvent 对象中提取信号发送的参数通过对象 B 的事件函数或如何推迟该事件以便调用相应的插槽。
对象 A 在 gui 线程中运行,它的职责是更新 gui。对象 B 正在实现 gui 逻辑并在不同的线程中运行。对象 A 正在通过信号和槽向对象 B 通知 gui 更改。对象 B 还处理来自另一个不是 QThread 的线程的事件。我为此使用自定义事件,并为此使用 postEvent() 函数来通知 Object B 。对象 B 具有用于接收自定义事件的覆盖事件函数。现在的问题是,当我从对象 A 向对象 B 发送任何信号以通知 gui 相关更改时,它会被事件函数捕获,并且相应的插槽没有被调用
【问题讨论】:
-
您能否提供一些代码来解释您要做什么?
-
如果问题包含 mvce,则会获得更多可见性:stackoverflow.com/help/mcve
-
这个问题不需要任何代码:) 它是用非常清晰的散文写的。 +1
标签: qt signals-slots qt4.8 qevent