[Rust] 04 FLTK_RS : ランチャーアプリ製作 set_callback

[M1 Mac, Big Sur 11.6.7, Rust 1.62.0]

ボタンの動作設定は本家FLTKとは異なる方法でした。

.cargoディレクトリにあるfltk-1.3.10のexamples内custom_widgets.rsでようやく分かりました。なぜそうなるのかについてはこれから調べます。move |_|とはいったい何なんでしょう。DOCS.RSを読んでもset_callback関数の存在が分かるだけでした。

use fltk::{app, prelude::*, button::*, window::Window, group::{Group}};

fn main() {
    let app = app::App::default();
    let mut window = Window::new(100, 100, 360, 190, "Tool Launcher");
    
    let mut _btn = Button::new(300, 15, 50, 25, "実行");
    _btn.set_callback(move |_| {
        println!("test");
    });
 
    let  grp = Group::new(15, 15, 285 , 160, "");{
        let mut _btn1= RadioRoundButton::new(15, 15, 140, 20, "PhotoSorting");
        _btn1.set(true);
        let mut _btn2= RadioRoundButton::new(15, 50, 140, 20, "");
        let mut _btn3= RadioRoundButton::new(15, 85, 140, 20, "");
        let mut _btn4= RadioRoundButton::new(15, 120, 140, 20, "");
        let mut _btn5= RadioRoundButton::new(15, 155, 140, 20, "");
        let mut _btn6= RadioRoundButton::new(160, 15, 140, 20, "");
        let mut _btn7= RadioRoundButton::new(160, 50, 140, 20, "");
        let mut _btn8= RadioRoundButton::new(160, 85, 140, 20, "");
        let mut _btn9= RadioRoundButton::new(160, 120, 140, 20, "");
        let mut _btn10= RadioRoundButton::new(160, 155, 140, 20, "");
    }
    grp.end();

    window.end();
    window.show();
    app.run().unwrap();
}