在命令行中制作一个类似于Linux图形用户界面的界面

21

如何在Linux命令行界面中制作一个显示漂亮用户界面的程序?

例如,当我使用"wget"从互联网下载文件时,我可以在命令行界面中看到下载进度。如何实现这一功能?


你想用什么语言编写这个前端? - Lucas
1
这个[1]似乎是你正在寻找的东西。 [1] http://en.wikipedia.org/wiki/Text_user_interface - Iceland_jack
11个回答

17

ncurses 是一个流行的选择,有很多编程语言的 API。


15

请看curses。它是用于基于文本的用户界面的库。


11

通过使用\r回到当前行的开头,您可以获得基本的界面。

稍微高级一些的是ncurses

更进一步的是Newt


6

1

我不认为wget的进度报告算是一个“漂亮的GUI”,但无论如何,在Linux和UNIX系统上建立图形界面的经典库是ncurses

最近开始了一个C#版本的ncurses,请查看 此处 的详情。


1
如果您只需要一个进度条,可以直接使用简单的print(打印进度条),然后是回车符(ANSI字符#13),这将使您回到行的开头。然后可以通过覆盖打印来更新该行。
对于更复杂的需求,ncurses确实是标准方法。

1

应该提到FTXUI。功能终端(X)用户界面:一个简单的C++库,用于基于终端的用户界面!

  • 跨平台
  • 支持UTF8和全角字符(→测试)
  • 无依赖性
  • 等等

0

你可以使用ANSI转义码。 这是Bash中的一个简单示例

echo -e "\033[H\033[2J  \033[20;20H  \033[4mThis is a underlined line.\033[0m"

0

如果你在使用Mono,你可以使用MonoCurses


0

尝试使用curses,它是一个文档完备的基于文本的用户界面API。此外,有很多开源项目正在使用curses供您查看和学习。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接