如何将消息从我的Qt GUI窗口发送到另一个进程

时间:2017-12-28 04:56:25

标签: c++ qt process stdin qprocess

我想为我的OpenGL应用程序编写一个编辑器。 OpenGL应用程序自行执行,并使用SDL2库创建自己的窗口。我已经创建了一个Qt小部件GUI,我通过单击一个按钮启动QProcess,该按钮启动左侧的OpenGL应用程序:

enter image description here

我已经阅读过如何将消息发送到其他进程,虽然我不确定这是否是理想的方法,但我决定尝试写入OpenGL的标准输入来自Qt GUI窗口的应用程序。因此,当点击GUI中的按钮时,我的代码就是:

void MainWindow::on_pushButton_2_clicked()
{// engineProcess is a pointer to the OpenGL QProcess started earlier.

    const char* ch = "Hello";
    engineProcess->write(ch, 5);
    // engineProcess->writeData()
}

然后在我的OpenGL应用程序中,我尝试每次更新:

fseek(stdin, 0, SEEK_END);
int num = ftell(stdin);
if (num > 0)
    GUI::OSDlog.addLogEntry("input");

我的理解是,这会检查OpenGL应用程序的标准输入是否为空。但是,从未添加任何输入。我不知道该怎么做。

如果我使用char ch = getchar()并且输入为空,则OpenGL应用程序将停止,直到stdin中存在某些内容,这就是我检查的原因。

另外,我不知道这是否是向流程发送消息的最佳方式。如果有更好的方法,请告诉我。

0 个答案:

没有答案