Quantcast
Channel: もくもくブログ
Viewing all articles
Browse latest Browse all 216

RustでGtk+ 3.x

$
0
0

gtk-rs/gtk: GTK+ 3.x bindings and wrappers for Rust

gtk-rs/gtkを使ってみます。

開発を始める前にビルドするためにGtkのツールキットが必要なのでインストールします。

Requirements - Gtk-rs

$ brew install gtk+3

(LinuxやWindowsでも動作するみたいです)

embed.ly

を参考に簡単な例を作ってみます。

$ 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

あっさり動きました。

どこまで実装されているのかわかりませんが、触っていってみようかと思っています。


Viewing all articles
Browse latest Browse all 216

Trending Articles