【发布时间】:2012-08-15 07:48:46
【问题描述】:
我不太擅长 Qt 并且对 Ubuntu 了解不多,但这是我的工作: 我启动 gnome-terminal,然后从它启动我的 *.sh 文件。如何从 Qt 中做到这一点? 我做了:
QProcess *proc = new QProcess;
proc->start("gnome-terminal");
proc->write("build.sh\n");
但只是终端正在打开,什么也没发生,我可以手动输入命令,但我需要从 QProcess 中完成。
【问题讨论】:
-
见this问题
-
两件事:1)当 start() 返回时,gnome-terminal 尚未启动。你必须连接到proc的started()信号或者调用waitForStarted()。 2) write() 写入终端的标准输入。那可能不会做你想要的。 (如果是这样,控制台上的“echo build.sh | gnome-terminal”也可以工作)。
-
@Frank Osterfeld 感谢您的帮助,它没有按我的意愿工作。但是我用“xterm”而不是“gnome-terminal”做了它,它工作得很好。但唯一的问题是 - 控制台窗口在 *sh 完成后关闭,如何防止它? QStringList 参数; argsstart("xterm",args); proc->waitForStarted(30000)
-
不知道,那是特定于 xterm 的。