我只是想通過下面的源代碼創建QProcess中一個文件: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的「路徑」的另一個文件的新文件,讓我稱之爲「配置文件」(PRO for Problem :)。配置文件也被創建,但從來沒有完成,我想即使文件的50%都沒有完成。 正當使用
while(!Prozess.waitForFinished())
{
qApp->processEvents();
std::cerr << "Process Create PROFile running " << std::endl;
}
該文件被完全寫入。 此外,我試圖使用QProcess完成(int)信號啓動另一種方法,並刪除while循環(凍結整個GUI)。我在構造函數中聲明:
connect(&Prozess, SIGNAL(finished(int)), this, (SLOT(processmethodTWO())));
但我想這不能工作,因爲第一個進程沒有完全完成。哪裏有問題?
'... ... method' –
rubenvb
2012-03-31 14:28:39
「偉大」的評論花花公子。如果你能告訴我你的意思是什麼,會不會很好?這是一個論壇! :P – Streight 2012-04-01 13:54:26
叫我迂腐和愚蠢的,但1)給函數一個名稱與「功能」或「方法」在他們是愚蠢的(雖然對於一個純粹的例子,這有助於傳達你的信息,所以只是不要做到真正的生活代碼)和2)「方法」是一個Java-ISM。 C或C++標準中沒有其他地方使用過這個術語,它讓我不寒而慄,認爲Java程序員正在嘗試學習C++。沒有個人的';-)' – rubenvb 2012-04-01 14:52:30