詳細検討
システムトレイのメニュー
-
メニュー項目、および選んだ場合の処理
テキスト 処理 Show ウィンドウの表示/非表示を切り替える Quit アプリケーションを終了する ShowとQuitの間には、セパレータを設ける
実装方法整理
メニュー
- 作成方法
- V2
MenuBuilder::new().build()
- 例
let tray_menu = MenuBuilder::new(app).items(&[&toggle]).build()?;
- 例
- V1
Menu::new()
- 例
let traymenu = Menu::new();
- 例
- V2
メニュー項目
- 作成方法
- V2
MenuItemBuilder::with_id().build()
- 例
let toggle = MenuItemBuilder::with_id("toggle", "Toggle").build(app)?;
- 例
- V1
CustomMenuItem::new()
- 例
let toggle = CustomMenuItem::new("toggle","Toggle");
- 例
- V2
- メニューへの追加方法
- 作成した項目
- V2
MenuBuilder.item(MenuItemBuilder)
- 例
traymenu.item(&toggle);
- 例
- V1
Menu.add_item(CustomMenuItem)
- 例
traymenu.add_item(toggle);
- 例
- V2
- Tauriが提供する項目
- V2
MenuBuilder.item(PredefinedMenuItem)
- 例
traymenu.item(&PredefinedMenuItem::separator(app)?);
- 例
- V1
Menu.add_native_item(MenuItem)
- 例
traymenu.add_native_item(MenuItem::Separator);
- 例
- V2
- 作成した項目
メニューイベント
- イベント定義方法
- V2
- 例
.on_menu_event(move |app, event| match event.id().as_ref() { // 項目と処理の紐づけ })
- 例
- V2
- 項目と処理の紐づけ方法
- V2
<項目> => { [処理記述] }
- 例
"toggle" => { println!("toggle clicked"); } _ => (),
- 例
- V2
ウィンドウ表示の切り替え
- ウィンドウを取得し、表示する/隠す
if let Some(webview_window) = app.get_webview_window("main") { let _ = webview_window.show(); let _ = webview_window.set_focus(); }
アプリケーションの終了
- トレイメニューに終了用の項目を追加する
- 例(V2)
traymenu.item(&PredefinedMenuItem::quit(app, None)?);
- 例(V2)