如何在Tauri中禁用顶部菜单栏的恢复、最小化等功能与右键关闭选项
Tauri 禁用窗口控制功能及右键关闭的解决方案
一、禁用窗口控制按钮与调整/移动功能
1. 通过配置文件禁用最小化、最大化按钮及调整大小
修改项目根目录下的 tauri.conf.json,在窗口配置中添加以下属性:
{ "tauri": { "windows": [ { "title": "你的应用名称", "width": 800, "height": 600, // 禁用最小化按钮 "minimizable": false, // 禁用最大化按钮 "maximizable": false, // 禁用窗口调整大小 "resizable": false, // 保留系统标题栏(不需要的话可设为false) "decorations": true } ] } }
2. 禁用窗口移动功能
窗口移动无法通过配置文件直接禁用,需通过代码调用Tauri API实现:
方式1:Rust后端实现
在 src-tauri/src/main.rs 中添加setup逻辑:
use tauri::Manager; fn main() { tauri::Builder::default() .setup(|app| { // 获取主窗口(名称需与tauri.conf.json中一致) let main_window = app.get_window("main").expect("主窗口未找到"); // 禁用窗口移动 main_window.set_movable(false).expect("无法禁用窗口移动"); Ok(()) }) .run(tauri::generate_context!()) .expect("运行Tauri应用失败"); }
方式2:前端JS/TS实现
在前端代码(如src/main.js或src/App.vue)中调用:
import { getCurrentWindow } from '@tauri-apps/api/window'; async function disableWindowMove() { const window = getCurrentWindow(); await window.setMovable(false); } // 页面加载时执行 disableWindowMove();
二、禁用顶部栏右键关闭选项
系统标题栏的右键菜单属于系统级菜单,需通过自定义Tauri菜单来移除关闭选项:
1. 完全移除右键菜单
如果不需要任何右键菜单,直接设置空菜单即可:
use tauri::Menu; fn main() { // 创建空菜单 let empty_menu = Menu::new(); tauri::Builder::default() .menu(empty_menu) .setup(|app| { let main_window = app.get_window("main").expect("主窗口未找到"); main_window.set_movable(false).expect("无法禁用窗口移动"); Ok(()) }) .run(tauri::generate_context!()) .expect("运行Tauri应用失败"); }
2. 保留部分菜单,仅移除关闭选项
如果需要保留其他菜单选项(如关于、设置等),可修改默认菜单:
use tauri::{Menu, MenuItem}; fn main() { // 获取默认系统菜单 let mut default_menu = Menu::default(); // 移除默认的关闭/退出菜单项(不同平台ID可能不同,以下为通用写法) default_menu.remove_item("quit"); // Windows平台需额外移除"close"项的话,添加: // default_menu.remove_item("close"); tauri::Builder::default() .menu(default_menu) .setup(|app| { let main_window = app.get_window("main").expect("主窗口未找到"); main_window.set_movable(false).expect("无法禁用窗口移动"); Ok(()) }) .run(tauri::generate_context!()) .expect("运行Tauri应用失败"); }
额外提示:自定义标题栏方案
如果系统标题栏的限制无法满足需求,推荐使用自定义标题栏:
- 在
tauri.conf.json中设置"decorations": false,隐藏系统标题栏 - 前端自定义标题栏组件,完全控制所有交互逻辑,彻底避免系统右键菜单和控制按钮的问题
内容的提问来源于stack exchange,提问作者Dolev Dublon
相关产品推荐
相关产品推荐

