QProcess没有从x-terminal-emulator获得完成的信号

时间:2014-05-05 09:35:42

标签: qt ubuntu terminal

我尝试使用QProcess(Ubuntu)运行 x-terminal-emulator

process->setWorkingDirectory(thedirectory);
process->start("x-terminal-emulator",arg3);
connect(process,SIGNAL(finished(int)),this,SLOT(deletecache()));

运行时,只要终端窗口打开就会执行deletecache() 如果我将start更改为execute,则表示没有完成信号的发送 终端窗口关闭时如何获取finished(int)信号?

1 个答案:

答案 0 :(得分:0)

  

运行时,只要终端窗口打开就会执行deletecache()。

我将假设arg3指向您的脚本x-terminal-emulator将运行。发生这种情况的唯一原因是,如果您的脚本将外部程序的调用作为后台中的分离进程,那么它将在您关闭之前不会阻塞,但会立即返回。

  

如果我改变开始执行,则没有完成信号的发送。

这是预期的,因为execute()是一个静态方法,并且没有静态信号槽这样的概念。

  

终端窗口关闭时如何获取完成(int)信号?

不要将终端作为分离的后台进程运行。