Když spustím sudo dpkg-reconfigure lightdm
v terminálu vidím zjednodušenou seznamovou nabídku podobnou oknu. Existuje způsob, jak něco takového vytvořit v C++?
Vypadá to nějak takto:
Přijatá odpověď:
Textové rozhraní podobné oknu obsažené v terminálu, které uvidíte, když spustíte sudo dpkg-reconfigure lightdm
je kódován pomocí ncurses knihovna. Takže pokud chcete, aby váš program poskytoval rozhraní, které vypadá takto, můžete také použít ncurses.
-
Zde je stránka projektu ncurses.
-
Zde je návod, jak programovat NCURSES.
-
Některé soubory dokumentace ncurses můžete nainstalovat pomocí ncurses-doc
balíček.
To zahrnuje manuálovou stránku ncurses, kterou si také můžete prohlédnout online zde. Obsahuje také manuálové stránky pro všechny funkce poskytované knihovnou ncurses (některé sdílejí manuálovou stránku). Tyto manuálové stránky nejsou aktuálně online na manpages.ubuntu.com.
Chcete-li vytvořit software pomocí ncurses v Ubuntu, měli byste získat příslušný balíček záhlaví. Pokud neprovádíte křížovou kompilaci, bude to:
-
Pro programy používající tradiční řetězce, kde je většina znaků reprezentována jedním bajtem (například UTF-8), použijte libncurses5
.
To je pravděpodobně to, co chcete, pokud jsou vaše řetězce pole
char
(v C a dalších jazycích založených na C) nebostd::string
(v C++). -
Pro programy vyžadující širokou podporu znaků použijte libncursesw5
.
Budete to potřebovat zejména v případě, že vaše řetězce jsou pole
wchar_t
(v C a dalších jazycích založených na C) nebostd::wstring
,std::u16string
, nebostd::u32string
(v C++).
Volitelně můžete také pomoci s laděním svého programu chtít symboly ladění (pro ladicí programy, jako je gdb). K tomu si nainstalujte libncurses5-dbg nebo libncursesw5-dbg
také.
Když vytváříte svůj program pomocí GCC (např. pomocí gcc
nebo g++
příkazy), zadejte mu argument -lncurses
nebo -lncursesw
, obvykle na samém konci příkazu. Toto propojí váš program s knihovnou ncurses. Například:
g++ -Wall -g -o hello hello.cpp -lncurses
Tím se zkompiluje hello.cpp k vytvoření spustitelného souboru se symboly ladění (-g
), s názvem ahoj (-o hello
), varování u většiny věcí, na které byste mohli chtít varování (-Wall
) a propojení s běžnou (ne širokými znaky) knihovnou ncurses (-lncurses
).