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と同じ内容で書きます。
extern crate gtk;
use gtk::prelude::*;
fn main() {
if gtk::init().is_err() {
println!("Failed to initialize GTK.");
return;
}
let window = 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)
});
let button = gtk::Button::new_with_label("Click me!");
window.add(&button);
window.show_all();
gtk::main();
}
$ cargo build
$ cargo run
あっさり動きました。
どこまで実装されているのかわかりませんが、触っていってみようかと思っています。
Show comments