[英]Set system tray menu items to disabled when starting Tauri tray app
我有一個基本的托盤應用程序,它設置了一個包含自定義菜單項的托盤菜單,並通過 tauri::Builder::default().system_tray 將其分配給應用程序。
在啟動時,我希望禁用除一個菜單項之外的所有菜單項。 我無法訪問菜單項方法以將啟用設置為 false,因此嘗試使用托盤句柄獲取 .setup 中的項目和 set_enabled(false)。 但是,此時托盤尚未配置。
如何在應用程序設置期間設置菜單項狀態? TIA
我當前的(失敗)代碼:
let opt1 = CustomMenuItem::new("opt1".to_string(), "Option 1");
let opt2 = CustomMenuItem::new("opt2".to_string(), "Option 2");
let tray_menu = SystemTrayMenu::new()
.add_item(opt1)
.add_item(opt2);
tauri::Builder::default()
.system_tray(SystemTray::new().with_menu(tray_menu))
.setup(|app| {
...
let tray_handle = app.handle().tray_handle();
tray_handle.get_item(&"opt1".to_string()).set_enabled(false);
...
})
.run(tauri::generate_context!())
.expect("error while running tauri application");
您可以在CustomMenuItem
上使用.disabled()
將其設置為禁用,然后再將其添加到菜單中。
例子:
SystemTray::new().with_menu(SystemTrayMenu::new()
.add_item(CustomMenuItem::new("action".to_string(), "Loading...").disabled())
.add_item(CustomMenuItem::new("quit".to_string(), "Quit"))
)
注意第一個菜單項上的.disabled()
。
此代碼提供了一個包含兩個項目的菜單,其中一個被禁用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.