我如何从 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 将不接受该参数语法。
在我的应用程序中,我想在终端模拟器中为用户打开 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 将不接受该参数语法。