gtk-rs/gtk: GTK+ 3.x bindings and wrappers for Rust
gtk-rs/gtkを使ってみます。
開発を始める前にビルドするためにGtkのツールキットが必要なのでインストールします。
$ brew install gtk+3
(LinuxやWindowsでも動作するみたいです)
を参考に簡単な例を作ってみます。
$ cargo new hello --bin
Cargo.tomlをexamplesのようにします。
[dependencies]glib="^0"gdk="^0"gdk-pixbuf="^0"gtk="^0"cairo-rs="^0"[features]#default = ["gtk_3_18"]gtk_3_10=["gtk/v3_10"]gtk_3_16=["gtk_3_10", "gtk/v3_16"]gtk_3_18=["gtk_3_16"] #for CI tools
src/main.rsをexamplesのbasicと同じ内容で書きます。
externcrategtk;usegtk::prelude::*;fnmain(){ifgtk::init().is_err(){println!("Failed to initialize GTK.");return;}letwindow=gtk::Window::new(gtk::WindowType::Toplevel);window.set_title("First GTK+ Program");window.set_border_width(10);window.set_position(gtk::WindowPosition::Center);window.set_default_size(350,70);window.connect_delete_event(|_,_|{gtk::main_quit();Inhibit(false)});letbutton=gtk::Button::new_with_label("Click me!");window.add(&button);window.show_all();gtk::main();}
$ cargo build
$ cargo run
あっさり動きました。
どこまで実装されているのかわかりませんが、触っていってみようかと思っています。