如何用QProcess运行vim终端

问题描述:

我想要做“vim”命令,“vim”命令用于在linux中打开一个新的编辑器。 “setup.csh”用QProcess打开文件“vi”editör。我想用gui来运行这个命令。如何用QProcess运行vim终端

Linux终端命令:“VIM /home/intern2/elif/Project/setup.csh”。如何我可以运行此命令GUI

我在Qt中写了下面的命令,但它并没有使用QProcess中工作。

QProcess *process1=new QProcess(this); 
process1->start("vim" , QStringList() <<"/home/intern2/elif/Project/setup.csh"); 
process1->waitForBytesWritten(); 
process1->waitForFinished(); 
ui->textEdit_3->append(process1->readAllStandardOutput()); 

不幸的是,我给了以下错误消息

错误消息:

Warning: Output is not a terminal 
Warning: Input is not from a terminal 
+0

你想打开一个新的终端窗口吗?如果是这样,你需要实际指定终端应用程序,如'process1-> start(“xterm”,QStringList() start(“cat “,QStringList() PeterT

+0

谢谢你,我按照我想要的@PeterT –

我得到了它这个工作:

QProcess* process = new QProcess(); 
qint64* processId = new qint64(); 
process->startDetached("/usr/bin/vim", QStringList(), QString(), processId); 

// Wait for process to be closed by user (kill() 
// does not actually kill the process, but tests if it exists) 
while (kill(*processId, 0) == 0) {} 

// Done 
delete processId; 
delete process; 

不要忘记添加#include <signal.h>kill()函数。