You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 21:12:31