GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie erstelle ich einfache fensterähnliche Elemente in einem Befehlszeilenprogramm?

Wenn ich sudo dpkg-reconfigure lightdm ausführe Im Terminal sehe ich ein vereinfachtes fensterähnliches Listenmenü. Gibt es eine Möglichkeit, so etwas in C++ zu machen?

Das sieht in etwa so aus:

Akzeptierte Antwort:

Die textbasierte, fensterähnliche Schnittstelle, die in einem Terminal enthalten ist und die Sie sehen, wenn Sie sudo dpkg-reconfigure lightdm ausführen wird mit ncurses codiert Bücherei. Wenn Sie also möchten, dass Ihr Programm eine Schnittstelle bereitstellt, die so aussieht, können Sie auch ncurses verwenden.

  • Hier ist die ncurses-Projektseite.

  • Hier ist ein HOWTO zur NCURSES-Programmierung.

  • Sie können einige ncurses-Dokumentationsdateien mit ncurses-doc installieren Paket.

    Dazu gehört auch die ncurses-Manpage, die Sie hier auch online einsehen können. Es enthält auch Handbuchseiten für alle Funktionen, die von der ncurses-Bibliothek bereitgestellt werden (einige teilen sich eine Handbuchseite). Diese Manpages sind nicht derzeit online unter manpages.ubuntu.com.

Um Software mit ncurses in Ubuntu zu erstellen, sollten Sie das entsprechende Header-Dateipaket erhalten. Sofern Sie nicht crosskompilieren, lautet dies:

  • Verwenden Sie für Programme, die herkömmliche Zeichenfolgen verwenden, bei denen die meisten Zeichen durch ein einzelnes Byte dargestellt werden (z. B. UTF-8), libncurses5 .

    Dies ist wahrscheinlich das, was Sie wollen, wenn Ihre Strings Arrays von char sind (in C und anderen C-basierten Sprachen) oder std::string (in C++).

  • Verwenden Sie für Programme, die Breitzeichenunterstützung erfordern, libncursesw5 .

    Sie werden dies besonders brauchen, wenn Ihre Strings Arrays von wchar_t sind (in C und anderen C-basierten Sprachen) oder std::wstring , std::u16string , oder std::u32string (in C++).

Optional können Sie auch Hilfe beim Debuggen Ihres Programms erhalten Debug-Symbole wollen (für Debugger wie gdb). Installieren Sie dazu libncurses5-dbg oder libncursesw5-dbg auch.

Wenn Sie Ihr Programm mit GCC erstellen (z. B. mit dem gcc oder g++ Befehle), geben Sie ihm das Argument -lncurses oder -lncursesw , normalerweise ganz am Ende des Befehls. Dadurch wird Ihr Programm mit der ncurses-Bibliothek verknüpft. Zum Beispiel:

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

Das kompiliert hello.cpp um eine ausführbare Datei mit Debug-Symbolen zu erzeugen (-g ), genannt Hallo (-o hello ), Warnung vor den meisten Dingen, vor denen Sie vielleicht eine Warnung wünschen (-Wall ) und das Verlinken auf die reguläre (keine Breitzeichen) ncurses-Bibliothek (-lncurses ).

Verwandte:Ist es möglich, für jeden Arbeitsbereich in Ubuntu einen anderen Hintergrund zu haben?
Ubuntu
  1. So erstellen Sie Befehlszeilen-Tastendruck-Aliasnamen in Linux

  2. So erstellen Sie einen bootfähigen Linux-USB-Stick über die Linux-Befehlszeile

  3. Wie erstelle ich einen persistenten USB-Stick?

  4. Wie erstelle ich einen Bereich?

  5. So erstellen Sie Threads in Linux (mit einem C-Beispielprogramm)

So erstellen Sie einen neuen Zweig in Git

So erstellen Sie einen Sudo-Benutzer unter Ubuntu

So erstellen Sie ein Ubuntu Live USB-Laufwerk über die Befehlszeile

So erstellen und führen Sie ein C-Programm mit Ubuntu 20.04 LTS aus

So erstellen Sie Ihr erstes Java-Programm unter CentOS 8

So erstellen Sie Ihr erstes Java-Programm in Debian 10