#menu #tui #terminal #cli

console-menu

一个简单但强大的Rust库,用于创建美观的控制台菜单。

6 个版本

0.2.1 2024年3月11日
0.2.0 2024年3月9日
0.1.4 2024年3月7日
0.1.3 2023年12月4日

#2660 in 命令行工具


用于 cli-menu-maker

MIT 许可证

17KB
241

Console Menu

一个简单但强大的Rust库,用于创建美观的控制台菜单。

使用方法

要开始使用,创建一个Menu对象并传递一个MenuOptions列表。一个简单的例子

use console_menu::{Menu, MenuOption, MenuProps};

let menu_options = vec![
    MenuOption::new("option 1", || println!("option one!")),
    MenuOption::new("option 2", || println!("option two!")),
    MenuOption::new("option 3", || println!("option three!")),
];
let mut menu = Menu::new(menu_options, MenuProps::default());
menu.show();
Screen Shot 2023-11-26 at 6 09 02 PM

使用箭头键移动菜单,按Enter键选择选项,按Esc键退出。也支持Vim风格的快捷键。菜单可以包含标题、页脚消息,以及任何组合的8位彩色背景和文本。

let menu_options = vec![
    MenuOption::new("eggs", || println!("menu item one!")),
    MenuOption::new("bacon", || println!("menu item two!")),
    MenuOption::new("toast", || println!("menu item three!")),
];

let mut menu = Menu::new(menu_options, MenuProps {
    title: "My Breakfast Menu",
    message: "*coffee is free!",
    fg_color: 233,
    bg_color: 32,
    msg_color: Some(236),
    ..MenuProps::default()
});
menu.show();
Screen Shot 2023-11-29 at 12 56 45 PM

菜单可以嵌套,选项可以包含任何类型的回调。有关更多信息,请参阅文档

依赖关系

~0.4–7MB
~38K SLoC