我只是想通过下面的源代码创建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