Grid於Rust的Gtk4 binding
按怎佇Gtk4 ê Rust binding 使用Grid(方格仔)tàu元件
如何於Gtk4的Rust binding使用grid(網格)嵌入元件
main.rs
// main.rs // author // - gtks-rs' co-authors, list: https://github.com/gtk-rs/gtk4-rs/graphs/contributors // - Tan, Kian-ting // License: MIT License (https://opensource.org/license/mit/) use gtk4::prelude::*; use gtk4::glib; use gtk4::{Align, Grid, Application, Button, Box}; fn main() -> glib::ExitCode{ let application = Application::builder() .application_id("info.kianting.sns.myapp") // app ê id .build(); application.connect_activate(build_ui); // 連結起做ui ê application.run() // 紡app } // 起做ui fn build_ui(application: >k4::Application) { // Create a new window, set its title and default size let window = gtk4::ApplicationWindow::new(application); window.set_title(Some("Grid Packing")); window.set_default_size(200, 120); // Here we construct the grid that is going contain our buttons. let grid = Grid::builder() .margin_start(6) // 倒爿ê邊仔留空白ê闊度 .margin_end(6) // 正爿ê邊仔留空白ê闊度 .margin_top(6)// 頂懸ê邊仔留空白ê懸度 .margin_bottom(6) // 下底ê邊仔留空白ê懸度 .halign(Align::Center)//水平排列 .valign(Align::Center)//垂直排列 .row_spacing(6)// 逐列ê縫留空白ê懸度 .column_spacing(6)// 逐欄ê縫留空白ê闊度 .build(); // Add the grid in the window window.set_child(Some(&grid)); // Create the first button and put it into the grid at (0, 0) let button_1 = Button::with_label("Button 1"); button_1.connect_clicked(move |_| println!("Hello World")); // column : 第x (=0,1,...)欄 // row: 第y(=0,1,...)列 // width : colspan // height : rowspan grid.attach(&button_1, 0, 0, 1, 1); // Create the second button and put it into the grid at (1, 0) let button_2 = Button::with_label("Button 2"); button_2.connect_clicked(move |_| println!("Hello World")); grid.attach(&button_2, 1, 0, 1, 1); let button_2 = Button::with_label("Button 2"); button_2.connect_clicked(move |_| println!("Hello World")); grid.attach(&button_2, 2, 0, 1, 1); // Create the quit button and put it into the grid at (0, 1) let quit_button = Button::with_label("Quit"); quit_button.connect_clicked(glib::clone!(@weak window => move |_| window.destroy())); grid.attach(&quit_button, 0, 1, 2, 1); window.present(); }