1 个不稳定版本
0.1.0 | 2023年7月16日 |
---|
#538 在 命令行界面
16KB
224 行
tui-rs 文件对话框
这是一个用于文件对话框弹出的 tui-rs 扩展
用法
请参阅 examples
目录了解如何使用此扩展。运行
cargo run --example demo
以查看其效果。
首先,将文件对话框添加到 TUI 应用程序
use tui_file_dialog::FileDialog;
struct App {
// Other fields of the App...
file_dialog: FileDialog
}
如果您想使用此 crate 提供的默认键绑定,只需将您的应用程序的事件处理程序包裹在 bind_keys!
宏中即可
use tui_file_dialog::bind_keys;
fn run_app<B: Backend>(terminal: &mut Terminal<B>, mut app: App) -> io::Result<()> {
loop {
terminal.draw(|f| ui(f, &mut app))?;
bind_keys!(
// Expression to use to access the file dialog.
app.file_dialog,
// Event handler of the app, when the file dialog is closed.
if let Event::Key(key) = event::read()? {
match key.code {
KeyCode::Char('q') => {
return Ok(());
}
_ => {}
}
}
)
}
}
最后,绘制文件对话框
fn ui<B: Backend>(f: &mut Frame<B>, app: &mut App) {
// Other UI drawing code...
app.file_dialog.draw(f);
}
局限性
我以简约的方式开始这个 crate,并根据使用情况添加新功能。例如,目前无法为文件对话框添加样式,只能使用一个无聊的、简约的列表块来渲染它。
贡献
此 crate 是基于使用情况开发的。如果您也想使用此 crate,但目前它还没有涵盖您的用例,请随时提出问题或为此创建 PR。我欢迎任何想法和改进。
许可协议
版权所有 2023 Philipp Krones
在 MIT 许可协议下发布。除非根据这些条款,否则不得复制、修改或分发项目中的文件。
依赖项
~3–14MB
~107K SLoC