我将QProcess * process
声明为类成员,并在构造函数中使用`process = new QProcess'进行了分配。现在,当用户按下按钮时,我开始了这个过程。
void MainWindow::rsync()
{
process->start("rsync c:\\test\\sync1 root@10.0.0.1:/Test");
// additionally what will happen if I do this
// process->start("ping root@10.0.0.1");
}
现在同步可能需要30秒,如果我在这段时间内再次按下按钮会怎样?如果在第一次同步完成后再次按下按钮会怎样?我可以在我分配一次的QProcess对象上再次调用start()
方法,还是删除它并重新分配它?
我要问的部分原因是第一个start
命令工作得很好(rsync似乎被阻止或者没有显示任何消息)但第二个start()
使用ping
命令工作,我可以在我的应用程序中看到输出。
答案 0 :(得分:2)
来自Qt docs:
如果QProcess对象已在运行进程,则可能会在控制台上打印警告,并且现有进程将继续不受影响地运行。