Как я могу отправлять сообщения из моего окна Qt GUI другому процессу

Я хочу сделать редактор для моего приложения OpenGL. Приложение OpenGL выполняется само по себе и создает свое собственное окно, используя библиотеку SDL2. Я создал графический интерфейс для виджетов Qt, и я запускаю QProcess, нажимая кнопку, которая запускает приложение OpenGL слева:

Я читал о том, как отправлять сообщения другому процессу, и, хотя я не уверен, что это идеальный способ сделать это, я решил попробовать записать стандартный ввод приложения OpenGL из окна Qt 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 ответов

Другие вопросы по тегам