navicat 不支持记住多显示器窗口位置,因其基于 qt 框架且未持久化存储窗口几何信息;windows 快照布局可伪记忆常用跨屏布局,需固定显示器编号、缩放比例并启用任务栏快照组。
navicat 本身不提供“记住多显示器窗口位置”的功能,它不会像 visual studio 那样自动保存停靠状态或跨屏布局。你手动拖动查询窗口、对象浏览器、连接列表到副屏后,下次启动时大概率会全部挤回主屏——这不是 bug,是 navicat 的设计限制。
为什么 Navicat 不记忆多显示器窗口位置
Navicat 的窗口管理基于 Qt 框架的默认行为,未启用 QSettings 对窗口几何信息(geometry)做跨会话持久化存储,尤其在多显示器 DPI 不一致或缩放比例不同的环境下,Qt 会主动重置窗口坐标以避免越界或不可见。官方文档和设置项中均无对应开关。
- 即使勾选了
自动保存(实际作用于 SQL 查询内容、连接配置、书签等),也不会影响窗口尺寸/位置 - 主屏与副屏分辨率、缩放比例差异越大(如主屏 1920×1080@100%,副屏 3840×2160@150%),窗口复位概率越高
- Windows 系统级的“窗口还原位置”机制(通过
WINDOWPLACEMENT)对 Navicat 多数子窗口无效,因其大量使用非标准 Qt 窗口类型(如QDockWidget自定义浮窗)
能绕过限制的实操方法:用 Windows 快照布局 + 手动固定
虽然 Navicat 不记位置,但 Windows 11 的快照辅助(Snap Assist)可以帮你“伪记忆”常用布局:
- 先将 Navicat 主窗口最大化在主屏,再把
查询窗口、对象浏览器、结果网格依次拖出为独立窗口 - 用
Win + 左/右箭头将各独立窗口分别贴靠到不同显示器的指定区域(例如:主屏左半边放对象浏览器,副屏全屏放查询窗口) - 完成排列后,将鼠标悬停在任务栏 Navicat 图标上 → 点击弹出的快照组预览 → 选择「将此组固定到任务栏」
- 下次启动 Navicat 后,直接右键任务栏图标 → 「恢复快照布局」即可复现(实测成功率约 85%,前提是显示器编号与物理顺序未变)
必须同步检查的 Windows 显示器识别与排列
快照布局生效的前提是 Windows 正确识别并固定了显示器拓扑。若每次插拔显示器后布局错乱,问题大概率不在 Navicat:
- 务必执行
Win + I → 系统 → 显示器 → 标识,确认每块屏编号与物理位置严格一致 - 在显示器布局图中,拖动缩略图时确保边缘对齐、无重叠,并保持与真实摆放方向完全一致(比如副屏在右侧,就只能拖到主屏方框正右方,不能偏上或偏下)
- 禁用
Win + P切换的「仅第二屏幕」模式后,务必手动返回「扩展这些显示器」,否则系统可能临时丢弃主屏坐标映射 - 若使用 NVIDIA 显卡,建议在
NVIDIA 控制面板 → 设置多个显示器中再次核对并应用排列,它比 Windows 设置更底层、更稳定
真正容易被忽略的是:Navicat 启动时若检测到主显示器 DPI 缩放变化(比如从笔记本自带屏切到外接 4K 屏),它会强制重置所有窗口到 (0,0) 坐标——这个行为无法关闭,只能靠 Windows 快照布局兜底。所以固定显示器编号+缩放比例+快照组,三者缺一不可。











