在命令行中创建一个Linux“GUI”

时间:2010-02-19 13:31:32

标签: linux user-interface command-line

如何在命令行界面中创建一个显示良好用户界面的Linux程序?

例如,当我使用“wget”从Internet下载文件时,我可以在命令行界面中看到下载进度。我怎样才能做到这一点?

10 个答案:

答案 0 :(得分:15)

ncurses是一个很受欢迎的选项,有许多编程语言的API。

答案 1 :(得分:12)

看看curses。它是基于文本的UI的库。

答案 2 :(得分:10)

您可以使用\r转到当前行的开头来获取基本界面。

稍微高级的是ncurses

下一步是Newt

答案 3 :(得分:4)

如果要为Bash脚本执行GUI或包装其他命令行实用程序,可以使用dialogman page)。

这里有两个很棒的对话教程,可以帮助您入门:

答案 4 :(得分:1)

我不会将wget的进度报告称为“漂亮的gui”,但无论如何,用于构建没有X Windows的图形界面的经典库是Linux和UNIX系统ncurses

最近已经启动了一个C#版本的ncurses,请查看详细信息here

答案 5 :(得分:1)

如果您只需要一个进度条,可以直接使用简单的print(打印栏),然后是回车符(ANSI字符#13) ,它让你回到行的开头。然后可以通过在其上打印来更新该行。

对于更复杂的需求,ncurses确实是标准的方法。

答案 6 :(得分:0)

如果您使用的是Mono,则可以使用MonoCurses

答案 7 :(得分:0)

尝试使用curses,它是一个记录良好的基于​​文本的UI的API。此外,还有很多开源项目使用curses来查看和学习

答案 8 :(得分:0)

wget没有真正的GUI,我看到的是你可以使用stdout和echos实现的东西(例如printf()或std :: cout)

无论如何,对于MessageBox类的简单对话框,但不仅限于此,还要看一下对话框

答案 9 :(得分:0)

您可以使用ANSI转义码。 bash中的一个简单例子

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