6个版本

0.0.8 2022年7月15日
0.0.7 2022年7月15日
0.0.6 2022年6月26日
0.0.5 2022年1月28日
0.0.3 2021年4月11日

GUI分类中排名407

Download history 8/week @ 2024-03-11 4/week @ 2024-03-18 34/week @ 2024-04-01 1/week @ 2024-04-29 4/week @ 2024-05-20 48/week @ 2024-06-03 34/week @ 2024-06-10 16/week @ 2024-06-17 7/week @ 2024-06-24

每月下载量105
image_sieve使用

Zlib许可证

160KB
3.5K SLoC

C++ 2.5K SLoC // 0.1% comments Rust 657 SLoC // 0.0% comments Objective-C 268 SLoC // 0.1% comments

nfde-rs

GitHub CI Build Crates.io

此crate包含对Native File Dialog Extended (NFDe)的Rust绑定,这是一个用于在Windows、MacOS和Linux上调用本地文件对话框的小型库。

它支持四种类型的对话框

  • 打开文件
  • 打开多个文件
  • 保存文件
  • 选择文件夹

目前,这个crate应被视为实验性的 — 虽然上流的NFDe是稳定的,但这些Rust绑定仍在变化中。

有关更多信息及截图,请参阅上流的NFDe仓库。

依赖项

以下依赖项需要您手动在您的机器上安装(Cargo不会为您安装它)

  • CMake
  • 一个不错的C/C++编译器(已知的MSVC、Clang或GCC可以工作)

您可能还需要将CMake放在您的PATH中,以便构建脚本可以找到它。

基本用法

use nfde::*;

fn main() -> Result<(), nfde::Error> {
    // Initialize NFD... NFD will be automatically deinitialized when this object is destroyed
    let nfd = Nfd::new()?;

    // Show the dialog...
    // Note: .show() will block until the dialog is closed
    // You can also set a default path using .default_path(Path)
    let res = nfd
        .open_file()
        .add_filter("Source code", "c,cpp,cc")?
        .add_filter("Headers", "h,hpp")?
        .show();

    match res {
        DialogResult::Ok(path_buf) => {
            println!("Success!");
            println!("Path: {}", path_buf.display());
        }
        DialogResult::Cancel => {
            println!("User pressed cancel.");
        }
        DialogResult::Err(error_str) => {
            println!("Error: {}", error_str);
        }
    };

    Ok(())
}

有关更多示例,请参阅/examples目录。

依赖项

~0–355KB