我创建了一个名为 my-app
的 Qt 应用程序。我通过在终端中输入来启动它:
./my-app
现在我想在同一个应用程序的两个独立窗口之间发送一个事件。所以,假设我有两个终端选项卡,我通过键入以下内容启动 my-app
:
./my-app 1
./my-app 2
应用程序的第一个实例 (./my-app 1
) 是否可以向第二个实例发送一个事件,并且当第二个窗口接收到该事件时使用 在终端中打印一些内容>qDebug()
(可能使用 args
中传递的第二个参数)?
如果是,怎么办?
最佳答案
Qt 提供了多种应用程序之间的通信方式。如果应用程序要在同一台机器上运行,那么我建议你看看使用 QLocalServer和 QLocalSocket .
应用程序的第一个实例可以查看它是否可以连接到 QLocalServer,如果失败,则创建自己的实例。
使用起来并不难,如果您查看 Qt 示例,您应该会找到一个 QLocalSocket 示例来演示如何使用它。
在 Windows 上,QLocalSockets 使用命名管道,因此非 Qt 应用程序也可以连接到它。
fortuneServer来自 Qt 的示例展示了如何使用 QTcpSocket 和 QTcpServer,QLocalSocket 和 QLocalServer 的接口(interface)几乎相同
关于c++ - 在两个 Qt 窗口之间发送事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19837454/