Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在两个Qt窗口之间发送事件_C++_Qt - Fatal编程技术网

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

C++ 在两个Qt窗口之间发送事件,c++,qt,C++,Qt,我已经创建了一个名为my app的Qt应用程序。我首先在终端中输入: ./my-app 现在我想在同一应用程序的两个独立窗口之间发送一个事件。因此,假设我有两个终端选项卡,我通过键入以下内容启动我的应用程序: ./my-app 1 ./my-app 2 应用程序的第一个实例(/my app 1)是否可以向第二个实例发送事件,并且当第二个窗口接收到此事件时,可以使用qDebug()(可能使用在args中传递的第二个参数)在终端中打印内容 如果是,如何进行?Qt提供了各种应用程序之间的通信方式。

我已经创建了一个名为
my app
的Qt应用程序。我首先在终端中输入:

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

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


如果是,如何进行?

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

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

使用它并不太困难,如果您查看Qt示例,您应该会发现一个QLocalSocket示例,该示例将演示如何使用它

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


来自Qt的示例展示了如何使用QtcSocket和QtcServer,QLocalSocket和QLocalServer的界面几乎相同。Qt提供了各种应用程序之间的通信方式。如果应用程序要在同一台机器上运行,那么我建议您考虑使用和

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

使用它并不太困难,如果您查看Qt示例,您应该会发现一个QLocalSocket示例,该示例将演示如何使用它

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


来自Qt的示例显示了如何使用QTcpSocket和QTcpServer,QLocalSocket和QLocalServer的接口几乎相同

即使使用相同的应用程序,也会运行多个实例,因此需要实现进程之间的通信。在这方面,我建议您阅读Qt文档中的。

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

通过QTcpSocket进行通信?@vahancho我不知道。我想象类似于
jQuery.on('eventName',handler)
&
jQuery.trigger('eventName')。我会选择最简单的方式。。。我不是QT专业人员。从你的问题我得出结论,即使是同一个应用程序,但也有两个不同的实例,所以你必须考虑它们之间的IPC。@ VHANCHO是的,它们是两个(或更多)不同的窗口(实例),所以我不知道他们如何沟通……通过QTcpSocket进行沟通?@vahancho我不知道。我想象类似于
jQuery.on('eventName',handler)
&
jQuery.trigger('eventName')。我会选择最简单的方式。。。我不是QT专业人员。从你的问题我得出结论,即使是同一个应用程序,但有两个不同的实例,所以你必须考虑它们之间的IPC。@ VHANCHO是的,它们是两个(或更多)不同的窗口(实例),所以我不知道他们如何沟通…