From 99e82684904554a79987f77c68af00cc84b1f197 Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Mon, 18 Apr 2022 11:44:02 +0200 Subject: [PATCH] Add GTK 4 hello world https://gtk-rs.org/gtk4-rs/stable/latest/book/introduction.html --- gtk4-hello-world/Cargo.toml | 9 +++++++++ gtk4-hello-world/src/main.rs | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 gtk4-hello-world/Cargo.toml create mode 100644 gtk4-hello-world/src/main.rs diff --git a/gtk4-hello-world/Cargo.toml b/gtk4-hello-world/Cargo.toml new file mode 100644 index 0000000..8a60626 --- /dev/null +++ b/gtk4-hello-world/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "gtk4-hello-world" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +gtk = { version = "0.4", package = "gtk4" } diff --git a/gtk4-hello-world/src/main.rs b/gtk4-hello-world/src/main.rs new file mode 100644 index 0000000..4ebedc0 --- /dev/null +++ b/gtk4-hello-world/src/main.rs @@ -0,0 +1,36 @@ +use gtk::prelude::*; +use gtk::{ + Application, ApplicationWindow, + Button +}; + +fn build_ui(app: &Application) { + let button = Button::builder() + .label("Click me!") + .margin_top(12) + .margin_bottom(12) + .margin_start(12) + .margin_end(12) + .build(); + + button.connect_clicked(move |button| { + button.set_label("Hello world!"); + }); + + let window = ApplicationWindow::builder() + .application(app) + .title("Hello GTK") + .child(&button) + .build(); + + window.present(); +} + +fn main() { + let app = Application::builder() + .application_id("ork.gtk-rs.example") + .build(); + + app.connect_activate(build_ui); + app.run(); +} -- 2.39.2