https://github.com/lxstvayne/interactiveconsolemenu
Меню, которое можно кастомизировать
https://github.com/lxstvayne/interactiveconsolemenu
console cpp interactive menu
Last synced: about 1 year ago
JSON representation
Меню, которое можно кастомизировать
- Host: GitHub
- URL: https://github.com/lxstvayne/interactiveconsolemenu
- Owner: lxstvayne
- Created: 2021-03-01T12:58:07.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-06-01T10:22:23.000Z (about 5 years ago)
- Last Synced: 2025-02-09T22:47:19.543Z (over 1 year ago)
- Topics: console, cpp, interactive, menu
- Language: C++
- Homepage:
- Size: 43 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
#
Menu.h
Данная библиотека помогает очень просто создавать интерактивные меню для вашей программы.
___
## Использование
```cpp
#include
#include "Menu.h"
#include
using namespace std;
void script(vector& v);
void print_vector(vector v);
void print_smth();
int main()
{
vector v;
Menu menu("Моё меню: ");
menu.add_row(
" 1. Строка номер 1", print_smth
);
menu.add_row(
" 2. Добавить элементы в вектор", [&]() { script(v); }
);
menu.add_row(
" 3. Вывести вектор", [&]() { print_vector(v); }
);
menu.add_row(
" Выход", nullptr
);
menu.run();
}
void script(vector& v)
{
int n;
int number;
cout << "Сколько чисел: ";
cin >> n;
cout << "Вводите ваши числа: " << endl;
for (size_t i = 0; i < n; i++)
{
cin >> number;
v.push_back(number);
}
}
void print_vector(vector v)
{
for (auto el: v)
cout << el << endl;
}
void print_smth()
{
cout << "Вы в пункте 1" << endl;
}
```

___
## Создание меню
Чтобы создать меню необходимо создать объект класса **Menu**:
```cpp
Menu menu(string title); // title -> Заголовок вашего меню, по умолчанию нет.
```
Установить по необходимости свои цвета для консоли, добавить строчки выбора:
```cpp
menu.add_row(
string name,
void function,
bool pause = true
);
```
Аргумент pause отвечает за то, будет ли ожидаться ввод любой клавиши после выполнения фукнции, использовать false при вложенном меню.
Лямба функция, если необходимо передать какие-то аргументы:
```cpp
menu.add_row(
string name,
[&]() { function(a, b, c) }
);
```
И запустить само меню:
```cpp
menu.run();
```
## Изменение цветов консоли
Вы также можете изменить цвет текста или заднего фона консоли:
```cpp
menu.set_color(char BG_COLOR, char FONT_COLOR);
```
Параметры **BG_COLOR** и **FONT_COLOR** используют в качестве аргумента перечисления Colors. Доступные цвета:
+ BLUE
+ LIGHT_GREEN
+ LIGHT_AQUA
+ AQUA
+ LIGHT_RED
+ RED
+ LIGHT_PURPLE
+ PURPLE
+ LIGHT_YELLOW
+ YELLOW
+ BRIGHT_WHITE
+ WHITE
+ GRAY
+ LIGHT_BLUE
+ BLACK