如何通过cmd/ctrl+=/-快捷键实现Tauri应用缩放?
在Tauri中实现窗口缩放快捷键
步骤1:配置权限与快捷键
先修改项目根目录的tauri.conf.json文件:
- 开启窗口缩放权限:在
tauri.allowlist.window里加上"scale": true,确保能调用缩放相关API:
{ "tauri": { "allowlist": { "window": { "scale": true, // 保留你已有的其他窗口权限 } } } }
- 添加快捷键规则:在
tauri.shortcuts里注册两个全局快捷键,分别对应放大和缩小:
{ "tauri": { "shortcuts": [ { "command": "app:zoom-in", "key": "CmdOrCtrl+Equal" }, { "command": "app:zoom-out", "key": "CmdOrCtrl+Minus" } ] } }
步骤2:主进程实现缩放逻辑
打开src-tauri/src/main.rs,注册处理快捷键的命令,调用窗口缩放API:
use tauri::{Manager, Window}; // 处理放大操作 #[tauri::command] fn zoom_in(window: Window) { let current_scale = window.scale_factor().unwrap_or(1.0); // 每次放大0.1倍,步长可以自己调 window.set_scale_factor(current_scale + 0.1).unwrap(); } // 处理缩小操作,限制最小缩放比例避免异常 #[tauri::command] fn zoom_out(window: Window) { let current_scale = window.scale_factor().unwrap_or(1.0); let new_scale = if current_scale > 0.5 { current_scale - 0.1 } else { 0.5 }; window.set_scale_factor(new_scale).unwrap(); } fn main() { tauri::Builder::default() .invoke_handler(tauri::generate_handler![zoom_in, zoom_out]) .run(tauri::generate_context!()) .expect("运行Tauri应用出错"); }
备选:前端直接监听快捷键
如果你习惯在前端处理,也可以在页面JS里监听键盘事件:
import { getCurrentWindow } from '@tauri-apps/api/window'; const initZoomShortcuts = async () => { const window = await getCurrentWindow(); document.addEventListener('keydown', async (e) => { // 放大:Cmd/Ctrl + = if ((e.metaKey || e.ctrlKey) && e.key === '=') { e.preventDefault(); const currentScale = await window.scaleFactor(); await window.setScaleFactor(currentScale + 0.1); } // 缩小:Cmd/Ctrl + - if ((e.metaKey || e.ctrlKey) && e.key === '-') { e.preventDefault(); const currentScale = await window.scaleFactor(); const newScale = currentScale > 0.5 ? currentScale - 0.1 : 0.5; await window.setScaleFactor(newScale); } }); }; // 页面加载时初始化 initZoomShortcuts();
注意:用前端方案时,同样要在tauri.conf.json里开启window.scale权限。
内容的提问来源于stack exchange,提问作者congtailai
相关产品推荐
相关产品推荐

