Tauri应用如何动态调整窗口尺寸? 振艳 提问于 2026-01-28 17:07:42 阅读 157 框架 在用Tauri开发应用时,想根据用户点击按钮动态调整窗口大小,但按照文档调用window.resizeTo()没反应,有没有其他正确方法? 尝试在前端用JavaScript调用: function resizeWindow() { window.resizeTo(800, 600); } 但点击按钮后窗口尺寸没变化,控制台也没有报错。查了tauri.conf.js配置,窗口初始尺寸设置正常,但动态修改没效果,这是为什么? 我来解答 赞 14 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 司马美蓝 Lv1 Tauri里前端的 window.resizeTo() 被浏览器安全策略限制了,根本没权限调,得用 Tauri 的 API。 先在 tauri.conf.json 里加 permissions 配置: "window": ["startDrag", "setSize", "setSize", "setMinSize", "setMaxSize", "setFullscreen", "setFocus", "close", "hide", "show", "maximize", "unmaximize", "minimize", "unminimize"] 然后在前端用 JS 调 Tauri 的命令: import { invoke } from '@tauri-apps/api/tauri'; async function resizeWindow() { await invoke('resize_window', { width: 800, height: 600 }); } Rust 侧写个命令: #[command] fn resize_window(window: Window, width: u32, height: u32) { let _ = window.set_size(Size::new(width, height)); } 差不多就行,记得装最新版 tauri,老版本路径可能不一样。 回复 点赞 5 2026-02-23 18:05 程序猿广云 Lv1 这个问题有点坑啊,其实 window.resizeTo() 是浏览器的方法,在 Tauri 里是没法直接用的。Tauri 的窗口操作得通过它的 API 来搞。 你需要用到 Tauri 提供的 @tauri-apps/api/window 模块。简单来说,就是得在前端调用 Tauri 的窗口管理方法才行。 给你个示例代码,直接上手就能用: async function resizeWindow() { const { current } = await import('@tauri-apps/api/window'); await current.setSize({ width: 800, height: 600 }); } // 绑定到按钮点击事件 document.getElementById('resize-btn').addEventListener('click', resizeWindow); 注意几点: 1. 确保你装了最新的 Tauri API 包。 2. 这里的 setSize 方法是异步的,记得用 await。 3. 前端这块得引入 Tauri 的 API,按上面的方式动态导入就行。 这样写就妥了,窗口大小能正常调整。如果还是有问题,检查下 Tauri 的配置文件里有没有限制窗口尺寸的选项,比如 minWidth、minHeight 之类的,可能会干扰设置。 回复 点赞 13 2026-01-29 06:10 加载更多 相关推荐 2 回答 50 浏览 Tauri应用中React组件调用fetch读取本地文件报跨域错误怎么办? 在用Tauri + React开发桌面应用时,我在React组件里用fetch读取本地JSON文件,结果报CORS错误。虽然Tauri文档说可以安全访问文件系统,但代码一直失败: import { u... 程序员江梅 框架 2026-02-12 04:47:21 2 回答 47 浏览 Tauri里怎么调用原生API获取系统信息? 我刚用Tauri搭了个React桌面应用,想在界面上显示当前操作系统版本,但不知道怎么从前端调用Tauri的原生API。官方文档看了有点懵,试了下直接import好像不行。 比如我想用os.versi... Zz姿言 框架 2026-03-03 22:01:22 2 回答 84 浏览 Vue组件调用Tauri的dialog API返回undefined怎么办? 我在用Tauri做桌面应用时,想在Vue组件里调用dialog.open()选择文件,但返回结果一直是undefined,搞不懂哪里出错了。 代码是这样的: 选择文件 export default {... UE丶米阳 框架 2026-02-01 12:27:31 2 回答 45 浏览 ResizeObserver 监听元素尺寸变化不生效是怎么回事? 我用 ResizeObserver 监听一个 div 的尺寸变化,但怎么调整窗口大小都没触发回调,是我写错了吗? 元素是动态渲染的,我在 mounted 里初始化的 observer,代码大概这样: ... 鑫玉 Dev 前端 2026-03-27 10:41:18 1 回答 69 浏览 NW.js 中如何正确调用原生窗口的最小化功能? 我在用 NW.js 开发一个桌面应用,想通过按钮点击让窗口最小化,但试了几次都不行。 我查了文档,写了这段代码:nw.Window.get().minimize();,可点击后没反应,控制台也没报错,... 诸葛园园 框架 2026-03-21 22:41:16 2 回答 61 浏览 Naive UI 的 Drawer 抽屉怎么动态修改宽度? 我在用 Naive UI 的 Drawer 组件,想根据屏幕尺寸动态调整抽屉的宽度。比如在桌面端设成 600px,移动端变成 100%。我试过直接绑定 width 属性::width="drawerW... 淑霞酱~ 组件 2026-03-18 05:43:24 1 回答 23 浏览 Grid栅格布局中如何动态控制列数? 我在用一个UI库的Grid组件做响应式布局,想根据屏幕宽度动态调整每行显示的列数,但改了span属性好像没生效。比如在小屏下希望每行1列,大屏下3列,但实际渲染还是固定值。 我试过在计算属性里返回不同... シ文君 组件 2026-03-12 20:21:19 1 回答 30 浏览 NW.js 中如何正确监听窗口关闭事件? 我在用 NW.js 做一个桌面应用,想在用户点击窗口右上角的关闭按钮时弹出确认对话框,但试了几次都没生效。我用了 win.on('close', ...),但窗口还是直接关了,根本没触发回调。 我的代... A. 园园 框架 2026-03-08 19:46:22 2 回答 39 浏览 Proton Native 中如何正确设置窗口图标? 我用 Proton Native 写了个桌面应用,想给窗口加个自定义图标,但试了好几种方法都不生效。 官方文档里好像没说清楚,我看到有人用 icon 属性,但加了之后图标还是没变,控制台也没报错。我放... Top丶志玉 框架 2026-03-05 23:34:21 2 回答 71 浏览 低代码Form Render如何动态切换表单布局样式? 用低代码表单引擎渲染的表单,想根据窗口宽度动态切换垂直/内联布局,但直接改class没效果 试过给表单包裹层动态绑定class:class={isMobile ? 'vertical' : 'inli... 极客艳清 框架 2026-02-13 20:28:26
先在 tauri.conf.json 里加 permissions 配置:
"window": ["startDrag", "setSize", "setSize", "setMinSize", "setMaxSize", "setFullscreen", "setFocus", "close", "hide", "show", "maximize", "unmaximize", "minimize", "unminimize"]然后在前端用 JS 调 Tauri 的命令:
Rust 侧写个命令:
差不多就行,记得装最新版 tauri,老版本路径可能不一样。
window.resizeTo()是浏览器的方法,在 Tauri 里是没法直接用的。Tauri 的窗口操作得通过它的 API 来搞。你需要用到 Tauri 提供的
@tauri-apps/api/window模块。简单来说,就是得在前端调用 Tauri 的窗口管理方法才行。给你个示例代码,直接上手就能用:
注意几点:
1. 确保你装了最新的 Tauri API 包。
2. 这里的
setSize方法是异步的,记得用await。3. 前端这块得引入 Tauri 的 API,按上面的方式动态导入就行。
这样写就妥了,窗口大小能正常调整。如果还是有问题,检查下 Tauri 的配置文件里有没有限制窗口尺寸的选项,比如
minWidth、minHeight之类的,可能会干扰设置。