本页介绍了 Tauri 的窗口管理系统,该系统负责跨不同平台创建、控制和管理应用程序窗口。有关 Webview 管理的信息,请参阅 Webview Management,有关应用程序内的状态管理,请参阅 状态管理。
Tauri 的窗口管理系统为应用程序窗口的控制提供了跨平台抽象。该系统允许应用程序创建、修改和监视窗口,在 Windows、macOS、Linux 和移动平台上提供一致的行为。
来源
WindowManager<R> 是一个核心组件,用于跟踪和管理 Tauri 应用程序中的所有窗口。它负责
来源
WindowBuilder 创建窗口规范WindowManager 准备窗口,检查重复标签并设置默认图标WindowManager 附加窗口,设置事件处理程序来源
窗口会发出各种事件,应用程序可以侦听和响应这些事件。这些事件提供了有关用户交互和窗口状态更改的信息。
| 事件类型 | 描述 | 负载 |
|---|---|---|
已调整大小 | 窗口大小已更改 | PhysicalSize<u32> |
已移动 | 窗口位置已更改 | PhysicalPosition<i32> |
CloseRequested | 用户尝试关闭窗口 | CloseRequestApi |
已销毁 | 窗口已被销毁 | None |
聚焦 | 窗口获得/失去焦点 | bool |
ScaleFactorChanged | 显示比例因子已更改 | { scale_factor, new_inner_size } |
DragDrop | 文件拖放事件 | DragDropEvent |
ThemeChanged | 系统主题已更改 | 主题 |
可以在多个级别上侦听事件
App 中的全局窗口事件来源
Tauri 提供了多种侦听窗口事件的方法
来源
可以使用各种配置选项创建窗口,这些选项定义了它们的外观和行为。Tauri 提供了 WebviewWindowBuilder 来创建带有 Webview 的窗口。
来源
窗口可以通过各种属性进行自定义
| 属性 | 描述 | 默认 |
|---|---|---|
标题 | 窗口标题 | 空字符串 |
内部尺寸 | 内容区域大小 | 800x600 |
最小内部尺寸 | 最小内容尺寸 | None |
最大内部尺寸 | 最大内容尺寸 | None |
位置 | 窗口位置 | 居中 |
可调整大小 | 窗口是否可调整大小 | true |
全屏 | 窗口是否全屏 | false |
装饰 | 窗口是否带有标题栏和边框 | true |
透明 | 窗口是否具有透明背景 | false |
always_on_top | 窗口是否保持在其他窗口之上 | false |
可见 | 创建后窗口是否可见 | true |
来源
Tauri 提供了丰富的 API 来在运行时操作窗口
来源
来源
在 Tauri 中,窗口和 Webview 之间有着密切的关系。WebviewWindow 是一个特殊的窗口,它包含一个 Webview,结合了窗口管理和 Web 内容渲染。
来源
Tauri 提供通过标签查找和检索窗口的方法
来源
tao crate(winit 的一个分支)进行窗口创建.ico 文件作为窗口图标.icns 文件作为窗口图标TitleBarStyle 可用的特殊标题栏样式tao 支持 X11/Wayland来源
来源