Tauri应用如何动态调整窗口尺寸? 振艳 提问于 2026-01-28 17:07:42 阅读 106 框架 在用Tauri开发应用时,想根据用户点击按钮动态调整窗口大小,但按照文档调用window.resizeTo()没反应,有没有其他正确方法? 尝试在前端用JavaScript调用: function resizeWindow() { window.resizeTo(800, 600); } 但点击按钮后窗口尺寸没变化,控制台也没有报错。查了tauri.conf.js配置,窗口初始尺寸设置正常,但动态修改没效果,这是为什么? 我来解答 赞 10 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 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,老版本路径可能不一样。 回复 点赞 4 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 之类的,可能会干扰设置。 回复 点赞 12 2026-01-29 06:10 加载更多 相关推荐 2 回答 44 浏览 Tauri应用中React组件调用fetch读取本地文件报跨域错误怎么办? 在用Tauri + React开发桌面应用时,我在React组件里用fetch读取本地JSON文件,结果报CORS错误。虽然Tauri文档说可以安全访问文件系统,但代码一直失败: import { u... 程序员江梅 框架 2026-02-12 04:47:21 2 回答 18 浏览 Tauri里怎么调用原生API获取系统信息? 我刚用Tauri搭了个React桌面应用,想在界面上显示当前操作系统版本,但不知道怎么从前端调用Tauri的原生API。官方文档看了有点懵,试了下直接import好像不行。 比如我想用os.versi... Zz姿言 框架 2026-03-03 22:01:22 2 回答 74 浏览 Vue组件调用Tauri的dialog API返回undefined怎么办? 我在用Tauri做桌面应用时,想在Vue组件里调用dialog.open()选择文件,但返回结果一直是undefined,搞不懂哪里出错了。 代码是这样的: 选择文件 export default {... UE丶米阳 框架 2026-02-01 12:27:31 1 回答 6 浏览 NW.js 中如何正确监听窗口关闭事件? 我在用 NW.js 做一个桌面应用,想在用户点击窗口右上角的关闭按钮时弹出确认对话框,但试了几次都没生效。我用了 win.on('close', ...),但窗口还是直接关了,根本没触发回调。 我的代... A. 园园 框架 2026-03-08 19:46:22 2 回答 26 浏览 Proton Native 中如何正确设置窗口图标? 我用 Proton Native 写了个桌面应用,想给窗口加个自定义图标,但试了好几种方法都不生效。 官方文档里好像没说清楚,我看到有人用 icon 属性,但加了之后图标还是没变,控制台也没报错。我放... Top丶志玉 框架 2026-03-05 23:34:21 2 回答 49 浏览 低代码Form Render如何动态切换表单布局样式? 用低代码表单引擎渲染的表单,想根据窗口宽度动态切换垂直/内联布局,但直接改class没效果 试过给表单包裹层动态绑定class:class={isMobile ? 'vertical' : 'inli... 极客艳清 框架 2026-02-13 20:28:26 2 回答 55 浏览 NodeGui中如何动态更新QML组件内容而不重新渲染整个页面? 我在用NodeGui写桌面应用时遇到个问题,想动态更新一个QML的Text组件内容,但每次调用this.content = newValue都会重新加载整个页面。之前试过用信号槽绑定数据,但页面还是闪... 小文科 框架 2026-02-07 15:37:27 2 回答 87 浏览 如何根据资源优先级动态调整预加载策略? 我在开发一个单页应用时发现,虽然用了预加载了一些资源,但页面加载时关键资源还是被其他低优先级的图片阻塞了。比如视频封面图比产品详情的CSS更早加载,导致页面白屏时间变长。尝试过设置as和media属性... 淑丽 Dev 优化 2026-02-04 11:31:44 2 回答 101 浏览 AppJS窗口无法正确应用自定义CSS样式,怎么办? 用AppJS开发桌面应用时,设置窗口透明样式一直不生效。我按文档把CSS写进style.css: body { background: rgba(255,255,255,0.5); backdrop-... 设计师锦玉 框架 2026-01-31 19:53:22 2 回答 79 浏览 Vuido中使用Flex布局时调整窗口导致元素错位怎么办? 我在用Vuido做桌面应用时,给主窗口加了个flex布局的导航栏,设置成居中排列。但当我拖动窗口变窄到一定宽度时,导航栏里的图标突然挤到下一行去了,明明设置了 nowrap 啊。 这是我的CSS代码:... 设计师子豪 框架 2026-01-31 05:18:42
先在 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之类的,可能会干扰设置。