如何通过外部命令与Qt小部件进行通信

How to communicate with Qt widget through external command?

本文关键字:通信 小部 Qt 何通过 外部 命令      更新时间:2023-10-16

我正在开发一个工具,在该工具的主窗口上,添加了一些Qt小部件。当我们习惯于用人民币点击Qt小部件时,会弹出一个上下文菜单(通过eventFilter调用了一些函数)来完成所需的工作——比如说,doTask()插槽会被接收器对象调用。

现在我必须在窗口上添加一个横幅菜单,它必须复制人民币上下文菜单的所有功能。由于这个横幅菜单不是Qt的,而是用一些内部函数(比如LISP)编写的,我在调用slot函数-doTask()时遇到了问题,因为我不知道接收器对象是什么。

如何通过一些外部命令/语言与Qt小部件进行通信?

如果有什么不清楚的地方,请添加评论。

您是否可以不从QT感知对象中公开一个简单的C风格方法,该对象充当插槽调用的代理。ie你的条幅调用方法,然后方法调用适当的槽?

您的基本问题只是知道接收器对象。一旦你这样做了,你就可以直接调用它的插槽(不需要通过信号)。

菜单知道这一点,因为它保留了一个指向接收器对象的指针。您自己的横幅菜单也必须这样做。因此,"它不知道接收器对象"必须是固定的。