Navicat 17 跨平台 UI 实现本质升级:基于 Qt 6.5+ 重写渲染逻辑,原生支持 ARM 架构与国产系统,高 DPI 下整数缩放无模糊,多显示器热插拔窗口智能恢复;Navicat 16 因 Qt 5.12 限制,存在图标糊、行号错位、窗口丢失等架构级缺陷。
Navicat 17 在跨平台 UI 设计上不是“适配得更好”,而是重写了底层渲染逻辑——Qt 6.5+ 替代 Qt 5.12,高 DPI、多屏、ARM 架构下的界面行为才真正一致。如果你还在用 Navicat 16,那在不同系统上遇到的 UI 问题基本不是配置能绕开的,是架构级缺失。
高 DPI 屏幕下图标和文字是否糊、错位
这是最直观的差异点。navicat 16 启动后常出现主工具栏图标糊成一团、sql 编辑器行号偏移、数据网格列宽计算错误导致滚动条误触发。根本原因是 qt 5.12 对物理像素缩放支持不完整,且 navicat 16 没做针对性 patch。
Navicat 17 启用 QT_SCALE_FACTOR_ROUNDING_POLICY=Round,所有控件按整数倍缩放;模型设计区、BI 仪表板、Redis 哨兵拓扑图等关键界面全部重绘为 SVG 图标资源,缩放无锯齿。
- macOS M1/M2 用户注意:
Navicat 16偶发CGSGetSurfaceBounds崩溃,Navicat 17已移除旧 CoreGraphics 调用路径 - Linux KDE/GNOME 下,
Navicat 17首次启动自动检测系统 DPI 并注入--force-device-scale-factor=1.25类参数,Navicat 16需手动加环境变量且效果不稳定
多显示器拔插后窗口是否“消失”
Navicat 16 的窗口位置记忆只存绝对坐标(比如 x=2400, y=100),一旦副屏拔掉,主窗口大概率卡在“看不见的区域”,必须删 ~/.navicat64/sys_config.ini 才能恢复。
Navicat 17 改用系统级屏幕 ID 绑定:Windows 用 HMONITOR,macOS 用 CGDirectDisplayID,Linux 用 xdpyinfo 输出哈希值。即使显示器物理顺序变化,窗口也优先回到逻辑上“最接近原位置”的可见区域。
- 配置项
display_restore_policy默认值为smart,可设为primary_only强制回主屏 - 该机制依赖系统 API,CentOS 7 等老旧发行版因
libxcb版本过低可能降级为传统坐标存储
Linux ARM 和国产系统能否原生显示正常
Navicat 16 只提供 navicat160_x64.tar.gz,在树莓派、飞腾、鲲鹏等 ARM 设备上直接报 cannot execute binary file: Exec format error;强行用 Docker + X11 转发或远程桌面,延迟高、剪贴板不同步、字体模糊、菜单错位是常态。
Navicat 17 发布了独立的 navicat170_arm64.tar.gz,原生支持 Ubuntu ARM、银河麒麟 V10 SP1、统信 UOS 20+。实测在 UOS 上启动耗时比 16 版(容器模拟)快 3.2 秒,且无 UI 渲染异常。
- 注意:
Navicat 17对glibc版本有硬性要求,ldd --version小于2.34的旧发行版(如 CentOS 7)仍无法运行 - ARM 版需手动下载对应包,官网区分
navicat170_premium_cs_arm64和_x64,选错会报Failed to load library libQt5Core.so.5
Navicat 17 把这事当核心问题解了,Navicat 16 则默认你不会换设备、不会调缩放、不会用国产系统。


















