簡體   English   中英

啟動 Tauri 托盤應用程序時將系統托盤菜單項設置為禁用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM