本文档全面概述了 ChatGPT 桌面应用程序的关键功能。这款基于 Tauri 的 ChatGPT 服务桌面包装器提供了比标准 Web 界面更强大的功能。有关整体系统架构的信息,请参阅 系统架构。
ChatGPT 桌面应用程序采用独特的“多 Webview”方法,而非传统的单一 Webview。这种架构通过专门的界面组件提供了更接近原生应用的的用户体验。
应用程序根据操作系统不同,对这些 Webview 的组织方式也不同。
在窗口调整大小时,会管理此布局以保持正确的比例和位置。
来源:src-tauri/src/core/setup.rs56-167 src-tauri/src/core/cmd.rs106-191
应用程序实现了自定义标题栏,提供导航控件和应用程序设置。
标题栏的主要功能包括:
在 macOS 上,标题栏在鼠标未悬停时会自动隐藏,从而提供更简洁、符合平台惯例的界面。
来源:src/view/Titlebar.tsx20-177
提问界面提供了一个专用的文本输入区域,用于向 ChatGPT 发送消息,而无需与标准 Web 界面进行交互。
提问界面的主要功能:
来源:src/view/Ask.tsx8-70 src-tauri/src/core/cmd.rs62-87
该应用程序支持三种主题选项:系统、浅色和深色。可以通过标题栏 UI 更改主题。
主题系统的工作原理是:
主题会影响所有 Webview 的外观,提供一致的视觉体验。
来源:src/view/Titlebar.tsx98-109 src-tauri/src/core/cmd.rs89-98
该应用程序包含多项窗口管理功能,以增强可用性:
可以将窗口固定在其他应用程序的顶部,这在处理其他应用程序时引用 ChatGPT 的响应非常有用。
来源:src/view/Titlebar.tsx84-87 src-tauri/src/core/cmd.rs48-60
应用程序根据操作系统调整其布局,以提供最接近原生应用的体验。
通过 on_window_event 处理程序可以在窗口调整大小时保留布局,该处理程序会重新计算每个 Webview 的位置和大小。
来源:src-tauri/src/core/setup.rs111-251
该应用程序内置了对通过 ChatGPT 界面下载的文件的处理功能。
当文件被下载时:
来源:src-tauri/src/core/setup.rs58-94
用户偏好和应用程序设置通过一个跨会话持久化的配置系统进行管理。
配置包括以下设置:
这些设置在应用程序启动时加载,并在用户通过 UI 更改偏好时更新。
来源:src-tauri/src/core/cmd.rs48-60 src-tauri/src/core/cmd.rs89-111
该应用程序设计用于在 Windows、macOS 和 Linux 上运行,并进行了平台特定的调整。
应用程序通过以下方式适应每个平台:
来源:src-tauri/src/core/setup.rs32-38 src-tauri/capabilities/desktop.json12-16