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

How i can get Ubuntu terminal's list from Qt

在我的应用程序中,我想在终端模拟器中为用户打开 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-based 系统都使用 update-alternatives 包(与 x-terminal-emulator 等虚拟包结合使用)来记录具有类似功能的程序,例如 Internet 浏览器、编辑器、命令 shell 等。调用 x-terminal-emulator 将启动用户设置的默认终端仿真器。 在此处阅读有关 update-alternatives 的更多信息:https://manpages.ubuntu.com/manpages/xenial/en/man1/update-alternatives.1.html

但是,如果您的目标是支持所有终端仿真器,硬编码 --command=ssh 127.0.0.1 并不是很明智。例如,XTerm 将不接受该参数语法。