2010-02-19 24 views
16

¿Cómo hacer un programa de Linux en la Interfaz de línea de comandos que muestra una interfaz de usuario agradable?Haga una "GUI" de Linux en la línea de comandos

Por ejemplo, cuando uso "wget" para descargar un archivo desde Internet, puedo ver el avance de la descarga en la Interfaz de línea de comandos. ¿Cómo puedo hacer eso?

+0

¿Cuál es el idioma que desea escribir en esta interfaz? – Lucas

+1

Esto [1] parece ser lo que estás buscando. [1] http://en.wikipedia.org/wiki/Text_user_interface –

Respuesta

12

Eche un vistazo a curses. Es una biblioteca para la interfaz de usuario basada en texto.

12

ncurses es una opción popular, hay API para muchos lenguajes de programación.

1

No llamaría al informe de progreso de wget como un "buen gui", pero de todos modos, la biblioteca clásica para construir interfaces gráficas sin X Windows es Linux y sistemas UNIX es ncurses.

Recientemente se ha iniciado un C# versión de ncurses, echa un vistazo a los detalles here

0

Si está usando Mono, usted podría utilizar MonoCurses

0

Trate maldiciones, se trata de una API bien documentado para la interfaz de usuario basada en texto .También hay tantos proyectos de código abierto que usan maldiciones para que vea y aprenda

9

Puede obtener una interfaz básica usando \r para ir al comienzo de la línea actual.

Un poco más avanzado es ncurses.

El siguiente paso es Newt.

0

wget en realidad no tiene una interfaz gráfica de usuario, todo lo que veo es algo que ya se puede lograr usando stdout y ecos (por ejemplo printf() o std :: cout)

De todas formas, para los cuadros de diálogo sencillos del cuadro de mensaje tipo, pero no se limita a eso, también echar un vistazo a diálogo

1

Si sólo necesita una barra de progreso, esto se puede hacer directamente con un simple print (que imprime la barra), seguido por el carácter de retorno carro (ANSI carácter # 13), que se pone de nuevo en el comienzo de la línea. La línea puede actualizarse posteriormente imprimiendo sobre ella.

Para las necesidades más complicadas, ncurses es de hecho el camino estándar a seguir.

0

Solo puede usar códigos de escape ANSI. Un ejemplo simple en bash

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