Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use gtk::prelude::*;
- use gtk::{Application, ApplicationWindow, Box, Button, Label};
- fn main() {
- let app = Application::new(Some("com.example.gtk-app"), Default::default()) ;
- app.connect_activate(|app| {
- let window = ApplicationWindow::new(app);
- window.set_title("Counter App");
- window.set_default_size(400, 300);
- let vbox = Box::new(gtk::Orientation::Vertical, 10);
- window.add(&vbox);
- let label = Label::new(Some("0"));
- vbox.add(&label);
- let hbox = Box::new(gtk::Orientation::Horizontal, 10);
- vbox.add(&hbox);
- let decrement_button = Button::with_label("-");
- let label_clone = label.clone();
- decrement_button.connect_clicked(move |_| {
- let value: i32 = label_clone.text().parse().unwrap_or(0);
- label_clone.set_text(&(value - 1).to_string());
- });
- hbox.add(&decrement_button);
- let increment_button = Button::with_label("+");
- let label_clone = label.clone();
- increment_button.connect_clicked(move |_| {
- let value: i32 = label_clone.text().parse().unwrap_or(0);
- label_clone.set_text(&(value + 1).to_string());
- });
- hbox.add(&increment_button);
- window.show_all();
- });
- app.run();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement