Tauri 的窗口配置主要集中在一个地方:tauri.conf.json 文件中的 windows 数组。每个窗口都是一个独立对象,可以设置标题、尺寸、位置、图标以及尺寸限制等属性。以下是最常用的基础配置项及其实用说明。
最小化窗口配置示例
{
"tauri": {
"windows": [
{
"title": "我的应用",
"width": 800,
"height": 600,
"resizable": true,
"fullscreen": false
}
]
}
}
只需这么一段,你的应用启动时就会创建一个 800×600、标题为“我的应用”的窗口,允许用户手动缩放,且不以全屏模式打开。
常用配置项详解
1. 尺寸:width 和 height
- 默认单位是逻辑像素(即 CSS 像素),而不是物理像素,因此在高 DPI 屏幕上会自动适配,无需额外处理。
- 如果不指定,Tauri 通常使用 800×600 作为默认值(视版本可能略有差异,建议显式指定)。
- 实用技巧:对于工具类应用,推荐使用 900×680 或 1024×700,这样内容区域舒适又不显得占地过大。
"width": 1024,
"height": 700
2. 位置:x 和 y
- 用于设置窗口在屏幕上的初始位置,原点为屏幕左上角。
- 注意:部分桌面环境(尤其是 Linux 的某些平铺窗口管理器)会忽略此设置,由系统自主决定窗口位置。
- 如果不设置
x和y,窗口默认会居中显示,这在大多数场景下是最自然的表现。因此除非有特殊需求,建议省略此配置。
// 一般在不需要特殊定位时不写
"x": 100,
"y": 50
3. 标题:title
- 会显示在窗口标题栏和任务栏上。
- 支持动态更新(通过 Rust 命令调用
window.set_title())。 - 真实建议:标题不宜过长,尤其是 Windows 下任务栏被缩略时过长的标题会被截断。
4. 图标:通过 tauri.conf.json 中的 bundle.icon 统一设置
窗口图标不是直接在 windows 数组里配置的,而是打包配置的一部分。Tauri 会将图标应用到窗口标题栏和任务栏。配置如下:
{
"tauri": {
"bundle": {
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/128x128@2x.png",
"icons/icon.icns",
"icons/icon.ico"
]
}
}
}
- Windows:需要提供
.ico文件(建议包含 256×256 尺寸,向下兼容)。 - macOS:需要提供
.icns文件(可通过iconutil从 PNG 集生成)。 - Linux:推荐提供 512×512 的 PNG。
- Tauri 在打包时会自动将这些图标复制到正确位置,并用于安装包和窗口图标。
5. 最小/最大尺寸限制
使用 minWidth、minHeight、maxWidth、maxHeight 可以约束用户的缩放行为,防止界面布局被拉伸得支离破碎。
{
"title": "不可调太小的编辑器",
"width": 860,
"height": 640,
"minWidth": 600,
"minHeight": 400,
"maxWidth": 1400,
"maxHeight": 900
}
- 这些值和
width/height一样,都是逻辑像素。 - 如果你希望窗口完全不能缩放,可以将
minWidth和maxWidth设置成同一个值,同时把resizable设为false或true(两者功能独立,但一般会联用)。
"resizable": false,
"minWidth": 800,
"maxWidth": 800,
"minHeight": 600,
"maxHeight": 600
常见问题与真实建议
- 多窗口场景:
windows是一个数组,你可以定义多个窗口,并为每个窗口指定不同的尺寸和标题,Tauri 会在启动时同时打开它们。 - 尺寸和屏幕 DPI:你写的所有尺寸都是逻辑像素,适配高分屏时界面和字体大小会按系统缩放比自动调整,这一点前端无需额外操心。
- 如果想去掉默认窗口边框:可以在窗口配置里添加
"decorations": false,这样就可以用前端实现标题栏,获得无边框窗口。但此时需注意最小/最大尺寸仍然适用。 - 调试时窗口太小:开发阶段可以将尺寸设得更合理一些(比如 1024×768),避免某些调试工具挤在一起。
通过这几项基础配置,你就能精确控制应用窗口的外观和初始状态,无需触及任何原生代码。下一节我们将继续深入窗口的高级特性,比如透明、置顶、阴影和无边框窗口的实现。