Lorsque j'exécute sudo dpkg-reconfigure lightdm
dans le terminal, je vois un listmenu simpliste en forme de fenêtre. Existe-t-il un moyen de créer quelque chose comme ça en C++ ?
Cela ressemble à :
Réponse acceptée :
L'interface textuelle de type fenêtre, contenue dans un terminal, que vous voyez lorsque vous exécutez sudo dpkg-reconfigure lightdm
est codé en utilisant les ncurses bibliothèque. Donc, si vous voulez que votre programme fournisse une interface qui ressemble à ça, vous pouvez aussi utiliser ncurses.
-
Voici la page du projet ncurses.
-
Voici un HOWTO de programmation NCURSES.
-
Vous pouvez installer certains fichiers de documentation ncurses avec le ncurses-doc paquet.
Cela inclut la page de manuel ncurses, que vous pouvez également consulter en ligne ici. Il comprend également des pages de manuel pour toutes les fonctions fournies par la bibliothèque ncurses (certains partagent une page de manuel). Ces pages de manuel ne sont pas actuellement en ligne sur manpages.ubuntu.com.
Pour créer des logiciels à l'aide de ncurses dans Ubuntu, vous devez obtenir le package de fichiers d'en-tête approprié. À moins que vous ne fassiez de la compilation croisée, ce sera :
-
Pour les programmes utilisant des chaînes traditionnelles où la plupart des caractères sont représentés par un seul octet (par exemple, UTF-8), utilisez libncurses5 .
C'est probablement ce que vous voulez si vos chaînes sont des tableaux de
char
(en C et autres langages basés sur C) oustd::string
(en C++). -
Pour les programmes nécessitant un large support de caractères, utilisez libncursesw5 .
Vous en aurez particulièrement besoin si vos chaînes sont des tableaux de
wchar_t
(en C et autres langages basés sur C) oustd::wstring
,std::u16string
, oustd::u32string
(en C++).
Facultativement, pour obtenir de l'aide pour déboguer votre programme, vous pouvez également veulent des symboles de débogage (pour les débogueurs tels que gdb). Pour cela, installez libncurses5-dbg ou libncursesw5-dbg aussi.
Lorsque vous construisez votre programme avec GCC (par exemple, avec le gcc
ou g++
commandes), donnez-lui l'argument -lncurses
ou -lncursesw
, généralement à la toute fin de la commande. Cela relie votre programme à la bibliothèque ncurses. Par exemple :
g++ -Wall -g -o hello hello.cpp -lncurses
Cela compile hello.cpp pour produire un exécutable avec des symboles de débogage (-g
), appelé bonjour (-o hello
), avertissement sur la plupart des choses pour lesquelles vous pourriez vouloir un avertissement (-Wall
) et la liaison à la bibliothèque ncurses régulière (pas de caractères larges) (-lncurses
).