c++ - 在两个 Qt 窗口之间发送事件

标签 c++ qt

我创建了一个名为 my-app 的 Qt 应用程序。我通过在终端中输入来启动它:

./my-app

现在我想在同一个应用程序的两个独立窗口之间发送一个事件。所以,假设我有两个终端选项卡,我通过键入以下内容启动 my-app:

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

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

如果是,怎么办?

最佳答案

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

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

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

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

fortuneServer来自 Qt 的示例展示了如何使用 QTcpSocket 和 QTcpServer,QLocalSocket 和 QLocalServer 的接口(interface)几乎相同

关于c++ - 在两个 Qt 窗口之间发送事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19837454/

相关文章:

c++ - 如果用户输入与特定值匹配怎么办?

c++ - 实例化冲突 - 内存泄漏?

qt - QBoxLayout 在调整其包含 ScrollArea 的大小时拉伸(stretch)其小部件,而不是滚动

c++ - 如何让 OpenCV 成为我的 qt 项目的默认库?

c++ - 如何对派生类进行值初始化?

c++ - Xcode 文件夹和组混淆

c++ - 链接到 boost 库

c++ - GetCountOfObjects、GetNumberOfObjects 和 GetObjectCount 中哪个最好?

c++ - 从数组中的文件中读取多个 float

c++ - 如何实现像 Qt::LeftDockWidgetArea 这样的枚举名称