40 releases
0.9.0 | Apr 29, 2025 |
---|---|
0.7.0 | Oct 31, 2023 |
0.6.4 | Jun 10, 2023 |
0.6.3 | Jan 22, 2022 |
0.4.1 | Jul 29, 2020 |
#24 in GUI
35,658 downloads per month
Used in 53 crates
(46 directly)
95KB
2.5K
SLoC
native-dialog
A library to display file choosers and message boxes. Supports GNU/Linux, BSD, macOS and Windows.
Installation
cargo add native-dialog
Usage
use native_dialog::{DialogBuilder, MessageLevel};
let path = DialogBuilder::file()
.set_location("~/Desktop")
.add_filter("PNG Image", &["png"])
.add_filter("JPEG Image", &["jpg", "jpeg"])
.open_single_file()
.show()
.unwrap();
let path = match path {
Some(path) => path,
None => return,
};
// Asyncronous Dialog
let yes = DialogBuilder::message()
.set_level(MessageLevel::Info)
.set_title("Do you want to open the file?")
.set_text(format!("{:#?}", path))
.confirm()
.spawn()
.await
.unwrap();
if yes {
do_something(path).await;
}
Misc
Ugly or blurry dialogs on Windows
Turn on crate features or embed manifests into the .exe
to enable visual styling and dpi awareness for your program. Check out examples/windows_manifest and examples/windows_features for example.
Linux/BSD dependencies
The implementation for Linux and BSD requires either Zenity or Kdialog being installed; otherwise the MissingDep
error will occur.
Dependencies
~0.4–13MB
~180K SLoC