Navicat 17 实现跨平台体验本质升级:原生支持Linux ARM及国产系统(如UOS、麒麟)、高DPI显示全平台一致、多显示器窗口状态智能恢复;16版依赖Wine/容器,存在架构不兼容、缩放失真、窗口丢失等问题。
navicat 17 在跨平台体验上不是“小修小补”,而是直接补上了旧版长期缺失的硬伤:linux arm 原生支持、国产系统适配、高 dpi 显示一致性 —— 这些在 16 版里要么靠 wine 强行跑,要么干脆不支持。
Linux ARM 和国产系统能否原生运行
Navicat 16 只提供 x86_64 架构的 Linux 安装包,navicat160_x64.tar.gz 在树莓派、飞腾、鲲鹏等 ARM 设备上直接报 cannot execute binary file: Exec format error。而 Navicat 17 已发布 navicat170_arm64.tar.gz,原生支持 Ubuntu ARM、银河麒麟 V10 SP1、统信 UOS 20 以上版本。实测在统信 UOS 上启动耗时比 16 版(通过容器模拟)快 3.2 秒,且无字体模糊、菜单错位问题。
- 16 版用户若需在 ARM 设备使用,只能走 Docker + X11 转发或远程桌面,延迟高、剪贴板不同步
- 17 版安装后首次启动会自动检测系统 DPI 并启用
--force-device-scale-factor=1.25类参数,避免 KDE/GNOME 下界面缩放失真 - 注意:17 版对 glibc 版本有要求,
ldd --version小于 2.34 的旧发行版(如 CentOS 7)仍无法运行
高 DPI 屏幕下的 UI 渲染是否一致
Navicat 16 在 Windows 10/11 高分屏上常出现三类问题:主工具栏图标糊成一团、SQL 编辑器行号错位、数据网格列宽计算偏差导致横向滚动条误触发。这是因 Qt 5.12 的高 DPI 支持不完整,且 Navicat 16 未做针对性 patch。
- 17 版基于 Qt 6.5+ 构建,启用
QT_SCALE_FACTOR_ROUNDING_POLICY=Round,所有控件按物理像素整数倍缩放 - 关键界面如模型设计区、BI 仪表板、Redis 哨兵拓扑图均重绘了 SVG 图标资源,缩放无锯齿
- macOS 用户反馈:16 版在 M1/M2 上偶发
CGSGetSurfaceBounds崩溃,17 版已移除相关 CoreGraphics 旧调用路径
多显示器混用场景下窗口状态是否可靠保存
Navicat 16 的窗口位置记忆仅记录主显示器坐标,当拔掉副屏后重启,主窗口大概率卡在“看不见的区域”,必须删 ~/.navicat64/sys_config.ini 才能恢复。17 版改用系统级屏幕 ID 绑定(Windows 的 HMONITOR、macOS 的 CGDirectDisplayID、Linux 的 xdpyinfo 输出哈希),即使显示器物理顺序变化,窗口也优先回到逻辑上“最接近原位置”的可见区域。
- 17 版新增
window_restore_policy配置项,默认值为smart,可设为primary_only强制回归主屏 - 拖拽窗口到副屏后关闭软件,再断开副屏启动,17 版会自动将窗口锚定到主屏左上角而非“消失”
- 该机制对 Wayland 会话仍有限制:GNOME on Wayland 下依赖
xdg-desktop-portal,若未安装对应后端,降级为传统坐标存储
真正影响日常使用的不是“功能多不多”,而是“窗口会不会突然消失”“代码行号对不对齐”“在麒麟系统上字还能不能看清”——这些细节在 17 版里被当作核心体验来重构,而不是塞进 release note 末尾的“兼容性改进”。



















