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) oderstd::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) oderstd::wstring
,std::u16string
, oderstd::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
).