Cuando ejecuto sudo dpkg-reconfigure lightdm
en la terminal veo un menú de lista simplista similar a una ventana. ¿Hay alguna forma de hacer algo así en C++?
Esto se parece a:
Respuesta aceptada:
La interfaz similar a una ventana basada en texto, contenida dentro de una terminal, que ve cuando ejecuta sudo dpkg-reconfigure lightdm
está codificado usando ncurses biblioteca. Entonces, si desea que su programa proporcione una interfaz que se vea así, también puede usar ncurses.
-
Aquí está la página del proyecto ncurses.
-
Aquí hay un CÓMO programar NCURSES.
-
Puede instalar algunos archivos de documentación de ncurses con ncurses-doc paquete.
Esto incluye la página de manual de ncurses, que también puede ver en línea aquí. También incluye páginas de manual para todas las funciones proporcionadas por la biblioteca ncurses (algunas comparten una página de manual). Esas páginas de manual no actualmente en línea en manpages.ubuntu.com.
Para crear software utilizando ncurses en Ubuntu, debe obtener el paquete de archivos de encabezado adecuado. A menos que esté realizando una compilación cruzada, esto será:
-
Para programas que usan cadenas tradicionales donde la mayoría de los caracteres están representados por un solo byte (por ejemplo, UTF-8), use libncurses5 .
Esto es probablemente lo que desea si sus cadenas son matrices de
char
(en C y otros lenguajes basados en C) ostd::string
(en C++). -
Para programas que requieren soporte de caracteres anchos, use libncursesw5 .
Lo necesitará especialmente si sus cadenas son matrices de
wchar_t
(en C y otros lenguajes basados en C) ostd::wstring
,std::u16string
ostd::u32string
(en C++).
Opcionalmente, si necesita ayuda para depurar su programa, puede también quiere símbolos de depuración (para depuradores como gdb). Para eso, instale libncurses5-dbg o libncursesw5-dbg también.
Cuando construye su programa con GCC (por ejemplo, con el gcc
o g++
comandos), dale el argumento -lncurses
o -lncursesw
, generalmente al final del comando. Esto vincula su programa a la biblioteca ncurses. Por ejemplo:
g++ -Wall -g -o hello hello.cpp -lncurses
Que compila hello.cpp para producir un ejecutable con símbolos de depuración (-g
), llamada hola (-o hello
), advertencia sobre la mayoría de las cosas sobre las que es posible que desee una advertencia (-Wall
), y vinculando a la biblioteca ncurses normal (sin caracteres anchos) (-lncurses
).