#file-dialog #dialog #imgui #file

imfile

一个简单且可定制的 imgui-rs 文件对话框,完全用 Rust 编写

1 个不稳定版本

0.1.0 2023年5月7日

#993 in GUI

MIT 许可证

21KB
154 代码行

仅适用于 ImGui 的 Rust 文件对话框

注意: 此包仍在开发中。一些功能尚未实现。
此包提供 100% Rust 的 ImGui 文件对话框。我创建此库是因为基本没有其他解决方案。虽然此包主要针对 [imgui-rs](https://crates.io/crates/imgui/),但经过一些修改后应该可以移植到 C++。这对于追求 100% 安全性的项目可能很重要。

特性

  • 轻量级且简单的文件对话框,带有嵌入式文件浏览器
  • imgui-rs >= 0.11.0 兼容
  • 无额外依赖项

示例

基本使用

use imfile::FileDialog;

fn main() -> {
    // set up your imgui::Ui here

    // This returns None if no file was selected
    if let Some(file) = FileDialog::new()
        .for_save() // Default is open
        .title("Title") // Default is "Open File" or "Save file" depending on the dialog type
        .accept_text("Open file") // Default is open
        .dir_only() // Only allow directories instead of files
        .spawn(&ui); // Create the dialog using the imgui::Ui
    {
        println!("File chosen: {}", file.display());
    } else {
        println!("No file selected.");
    }
}

待办事项

  • 为小部件添加图标
  • 添加文件过滤器
  • 设置侧边面板导航器(例如:磁盘、最近...)

许可证

此包采用 MIT 许可证。

依赖项

~13–18MB
~242K SLoC