我如何从Qt获取Ubuntu终端列表

问题描述

在我的应用中,我想在终端仿真器中为用户打开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将不接受该参数语法。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...