我尝试使用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)
信号?
答案 0 :(得分:0)
运行时,只要终端窗口打开就会执行deletecache()。
我将假设arg3指向您的脚本x-terminal-emulator将运行。发生这种情况的唯一原因是,如果您的脚本将外部程序的调用作为后台中的分离进程,那么它将在您关闭之前不会阻塞,但会立即返回。
如果我改变开始执行,则没有完成信号的发送。
这是预期的,因为execute()是一个静态方法,并且没有静态信号槽这样的概念。
终端窗口关闭时如何获取完成(int)信号?
不要将终端作为分离的后台进程运行。