0

我创建了一个名为my-app. 我通过在终端中输入来启动它:

./my-app

现在我想在同一个应用程序的两个独立窗口之间发送一个事件。所以,假设我有两个终端选项卡,我首先my-app输入:

./my-app 1
./my-app 2

应用程序的第一个实例 ( ./my-app 1) 是否可以向第二个实例发送事件,并且当第二个窗口接收到此事件以使用qDebug()(可能使用传入的第二个参数args)在终端中打印某些内容时?

如果是,如何?

4

2 回答 2

3

Qt 提供了各种应用程序之间的通信方式。如果应用程序要在同一台机器上运行,那么我建议您看看使用QLocalServerQLocalSocket

应用程序的第一个实例可以查看它是否可以连接到 QLocalServer,如果失败,则创建自己的。

使用起来并不难,如果您查看 Qt 示例,您应该会找到一个 QLocalSocket 示例来演示如何使用它。

在 Windows 上,QLocalSockets 使用命名管道,因此非 Qt 应用程序也可以连接到它。

Qt 中的fortuneServer示例展示了如何使用 QTcpSocket 和 QTcpServer,并且 QLocalSocket 和 QLocalServer 的接口几乎相同

于 2013-11-07T14:17:40.853 回答
2

即使你使用同一个应用程序,你也会运行不止一个实例,因此你需要实现进程之间的通信。在这方面,我建议阅读 Qt 文档中的以下段落

于 2013-11-07T14:18:40.683 回答