如何在命令行程序中创建简单的类似窗口的元素?

如何在命令行程序中创建简单的类似窗口的元素?

当我在终端中执行时,sudo dpkg-reconfigure lightdm我会看到一个简单的类似窗口的列表菜单。有没有办法在 C++ 中制作类似的东西?

这看起来像:
在此处输入图片描述

答案1

运行时,终端内基于文本的窗口式界面sudo dpkg-reconfigure lightdm使用以下代码进行编码:ncurses图书馆。因此,如果您希望您的程序提供类似的界面,您也可以使用 ncurses。

要在 Ubuntu 中使用 ncurses 构建软件,你应该获得适当的头文件包。除非你正在交叉编译,否则这将是:

  • 对于使用传统字符串的程序,其中大多数字符由单个字节表示(例如,UTF-8), 使用libncurses5安装 libncurses5

    如果您的字符串是数组char(在 C 和其他基于 C 的语言中)或std::string(在 C++ 中),这可能就是您想要的。

  • 对于需要宽字符支持的程序,使用libncursesw5安装 libncursesw5

    wchar_t如果您的字符串是数组(在 C 和其他基于 C 的语言中)或std::wstringstd::u16stringstd::u32string(在 C++ 中),那么您尤其需要这个。

另外,为了帮助调试你的程序,你可以需要调试符号(用于调试器,例如数据库)为此,请安装libncurses5-dbg安装 libncurses5-dbg或者libncursesw5-dbg安装 libncursesw5-dbg也。

也可以看看Launchpad 上的 Ubuntu ncurses 页面,其中包含 Ubuntu 中主要的 ncurses 包的列表以及每个当前支持的 Ubuntu 版本的版本信息。

当您使用 GCC 构建程序时(例如,使用gccg++命令),请为其提供参数-lncurses-lncursesw,通常在命令的最末尾。这会将您的程序链接到 ncurses 库。例如:

g++ -Wall -g -o hello hello.cpp -lncurses

编译你好.cpp生成一个带有调试符号的可执行文件(-g),名为你好-o hello),对大多数您可能需要警告的事情发出警告(-Wall),并链接到常规(非宽字符)ncurses 库(-lncurses)。

相关内容