Я просто пытаюсь создать файл с QProcess, используя следующий исходный код:
void Processmethod()
{
QDialog *ProcessMessage = new QDialog;
Ui::DialogProcessMessage Dialog;
Dialog.setupUi(ProcessMessage);
ProcessMessage->setModal(true);
ProcessMessage->setAttribute(Qt::WA_DeleteOnClose);
ProcessMessage->show();
processmethodONE();
}
void processmethodONE()
{
QString ProcessCommand = "w8 " + blablubli";
Prozess.setWorkingDirectory(Path); //QProcess "Prozess" is globaly defined
Prozess.setStandardOutputFile(Path); //in my class
Prozess.start(ProcessCommand);
QProcess::ExitStatus Status = Prozess.exitStatus();
if (Status == 0)
{
std::cout << "File created!" << std::endl;
}
}
Этот процесс создает из другого файла, который находится в QString «Path», новый файл, позвольте мне назвать его «PROFILE» (PRO для Problem :). Профиль также создается, но никогда не завершается, я думаю, даже 50% файла не завершены.
Просто при использовании
while(!Prozess.waitForFinished())
{
qApp->processEvents();
std::cerr << "Process Create PROFile running " << std::endl;
}
файл написан полностью.
Кроме того, я попытался использовать сигнал QProcess finish (int) для запуска другого метода и удалил цикл while (который останавливает весь графический интерфейс). Я объявил это в конструкторе с:
connect(&Prozess, SIGNAL(finished(int)), this, (SLOT(processmethodTWO())));
Но я думаю, это не могло сработать, потому что первый процесс не завершен полностью. Где проблема?