27 个版本
0.7.0 | 2023年10月31日 |
---|---|
0.6.4 | 2023年6月10日 |
0.6.3 | 2022年1月22日 |
0.6.1 | 2021年12月3日 |
0.4.1 | 2020年7月29日 |
#34 in GUI
46,803 个月下载量
用于 38 个 crates (33 直接)
70KB
2K SLoC
native-dialog
一个用于显示文件选择器和消息框的库。支持 GNU/Linux、BSD Unix、macOS 和 Windows。
安装
cargo add native-dialog
使用
use native_dialog::{FileDialog, MessageDialog, MessageType};
fn main() {
let path = FileDialog::new()
.set_location("~/Desktop")
.add_filter("PNG Image", &["png"])
.add_filter("JPEG Image", &["jpg", "jpeg"])
.show_open_single_file()
.unwrap();
let path = match path {
Some(path) => path,
None => return,
};
let yes = MessageDialog::new()
.set_type(MessageType::Info)
.set_title("Do you want to open the file?")
.set_text(&format!("{:#?}", path))
.show_confirm()
.unwrap();
if yes {
do_something(path);
}
}
其他
为什么在 Windows 上对话框看起来很丑/模糊?
启用 crate 功能或将清单嵌入到 .exe
中以启用程序的视觉样式和 dpi 支持。请参阅 examples/windows_manifest 和 examples/windows_features 示例。
为什么在 macOS 上打开对话框时程序崩溃?
macOS 的 UI 框架 (Cocoa) 有一个限制,即所有 UI 操作都必须在主线程上执行。
Linux 依赖项
native-dialog 的 Linux 实现需要安装 Zenity 或 Kdialog。否则您将得到 No Implementation
错误。
依赖项
~0.4–10MB
~109K SLoC