问题描述
在我的应用中,我想在终端仿真器中为用户打开ssh。现在我正在像这样使用QProcess:
QProcess _localhostConnection;
_localhostConnection.start(QString("gnome-terminal"),QStringList("--command=ssh 127.0.0.1"));
但是问题是另一台计算机上没有gnome-terminal。另一台计算机具有Ubuntu。如何在Ubuntu上的Qt中获取已安装终端的列表?
解决方法
尝试致电x-terminal-emulator
。几乎所有基于Debian的系统都使用update-alternatives
软件包(与x-terminal-emulator
之类的虚拟软件包结合使用)来预订具有类似功能的程序,例如Internet浏览器,编辑器,命令解释器等。调用x-terminal-emulator
将启动用户设置的默认终端仿真器。
在此处阅读有关update-alternatives
的更多信息:https://manpages.ubuntu.com/manpages/xenial/en/man1/update-alternatives.1.html
但是,如果您打算支持所有终端仿真器,则对--command=ssh 127.0.0.1
进行硬编码不是很明智。例如,XTerm将不接受该参数语法。