GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come creare elementi semplicistici simili a finestre in un programma da riga di comando?

Quando eseguo sudo dpkg-reconfigure lightdm nel terminale vedo un listmenu semplicistico simile a una finestra. C'è un modo per creare qualcosa del genere in C++?

Sembra qualcosa del tipo:

Risposta accettata:

L'interfaccia testuale simile a una finestra, contenuta all'interno di un terminale, che vedi quando esegui sudo dpkg-reconfigure lightdm è codificato utilizzando ncurses biblioteca. Quindi, se vuoi che il tuo programma fornisca un'interfaccia simile a quella, puoi usare anche ncurses.

  • Ecco la pagina del progetto ncurses.

  • Ecco un HOWTO alla programmazione di NCURSES.

  • Puoi installare alcuni file di documentazione di ncurses con ncurses-doc Pacchetto .

    Ciò include la manpage di ncurses, che puoi anche visualizzare online qui. Include anche pagine di manuale per tutte le funzioni fornite dalla libreria ncurses (alcuni condividono una pagina di manuale). Quelle pagine di manuale non attualmente online su manpages.ubuntu.com.

Per creare software utilizzando ncurses in Ubuntu, dovresti ottenere il pacchetto di file di intestazione appropriato. A meno che tu non stia compilando in modo incrociato, questo sarà:

  • Per i programmi che utilizzano stringhe tradizionali in cui la maggior parte dei caratteri è rappresentata da un singolo byte (ad esempio, UTF-8), utilizzare libncurses5 .

    Questo è probabilmente quello che vuoi se le tue stringhe sono array di char (in C e altri linguaggi basati su C) o std::string (in C++).

  • Per i programmi che richiedono il supporto di caratteri ampi, utilizzare libncursesw5 .

    Ne avrai particolarmente bisogno se le tue stringhe sono array di wchar_t (in C e altri linguaggi basati su C) o std::wstring , std::u16string o std::u32string (in C++).

Facoltativamente, per assistenza nel debug del tuo programma, potresti anche vuoi simboli di debug (per debugger come gdb). Per questo, installa libncurses5-dbg o libncursesw5-dbg .

Quando crei il tuo programma con GCC (ad es. con il gcc o g++ comandi), assegnagli l'argomento -lncurses o -lncursesw , di solito alla fine del comando. Questo collega il tuo programma alla libreria ncurses. Ad esempio:

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

Questo compila hello.cpp per produrre un eseguibile con simboli di debug (-g ), chiamato ciao (-o hello ), avviso sulla maggior parte delle cose su cui potresti volere un avviso (-Wall ), e il collegamento alla libreria ncurses regolare (non a caratteri larghi) (-lncurses ).

Correlati:è possibile avere uno sfondo diverso per ogni area di lavoro in Ubuntu?
Ubuntu
  1. Come creare alias di sequenze di tasti della riga di comando in Linux

  2. Come creare USB avviabile Linux dalla riga di comando di Linux

  3. Come creare un USB persistente?

  4. Come creare un ambito?

  5. Come creare thread in Linux (con un programma di esempio C)

Come creare un nuovo ramo in Git

Come creare un utente Sudo su Ubuntu

Come creare un'unità USB Ubuntu Live utilizzando la riga di comando

Come creare ed eseguire un programma C usando Ubuntu 20.04 LTS

Come creare il tuo primo programma Java su CentOS 8

Come creare il tuo primo programma Java in Debian 10