Linux에서 C ++를 사용하여 다른 응용 프로그램을 시작할 수있는 응용 프로그램을 작성하려고합니다. 다른 응용 프로그램을 시작하는 것은 문제가되지 않습니다. 내가 직면 한 문제는 하위 응용 프로그램이 닫힐 때까지 부모 응용 프로그램이 일시 중지된다는 것입니다. 부모 응용 프로그램의 더 많은 기능을 사용할 수 있도록 부모 응용 프로그램이 자식 응용 프로그램과 함께 실행되기를 원합니다. 어떻게해야합니까? 누군가 나에게 이것에 대한 아이디어를 줄 수 있다면 많은 도움이 될 것입니다.
응용 프로그램은 main.cpp와 virtualbotmain.cpp라는 두 개의 파일로 구성됩니다. 의 일부
virtualbotmain.cpp: #include <iostream>
#include <stdlib.h>
VirtualBotMain::VirtualBotMain(QWidget *parent) :
QWidget(parent),
ui(new Ui::VirtualBotMain)
{
ui->setupUi(this);
}
void VirtualBotMain::on_enterButton_clicked()
{
QString enterString = ui->enterEdit->text();
ui->convoText->append("User: " + enterString);
ui->enterEdit->setText("");
if(enterString=="word")
{
ui->convoText->append("Joe: done..!!");
system("gedit");
}
}
main.cpp는 다음과 같습니다.
#include <QtGui/QApplication>
#include "virtualbotmain.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
VirtualBotMain w;
w.show();
return a.exec();
}
이것은 내가 열려고하는 응용 프로그램을 입력하는 데 사용할 수있는 GUI 응용 프로그램이며 응용 프로그램이 나를 대신합니다. 따라서 이전에 열린 응용 프로그램을 닫을 때까지 GUI 응용 프로그램이 작동하지 않으므로 많은 응용 프로그램을 차례로 열려고 시도하는 것이 문제가됩니다.
system
호출 (또는 셸을 호출하는 유사한 방법)을 사용하는 경우 터미널에 적용한 것과 동일한 논리를 적용하여 "백그라운드에서"프로세스를 시작할 수 있습니다.
system("./myProgram &");
// ^
// run in background
더 나은 대안에는 fork
ing이 포함 되지만 실제로는 사용자의 특정 요구 사항에 따라 달라집니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다