Navicat 启动后文字发虚是因未启用进程级 DPI 感知,导致 Windows 位图拉伸;解决方法是通过快捷方式添加 --dpiawareness 1 参数启动(Navicat 16.1.7+ / Qt 6.5+ / Win11 22H2+)。
Navicat 启动后界面文字发虚、边缘毛糙
这是 win11 高 dpi 缩放(比如 125% / 150%)下,navicat 未正确启用进程级 dpi 感知导致的典型现象。它不是字体渲染问题,而是 windows 把整个窗口当低分辨率内容拉伸了。
- 根本原因:
navicat.exe默认以“系统 DPI 感知”模式运行,无法响应缩放变化,Windows 被迫做位图拉伸 - 验证方式:右键
navicat.exe→ “属性” → “兼容性” → 勾选“替代高 DPI 缩放行为”,若此时选“应用程序”并重启后变清晰,就确认是这个问题 - 不要改注册表强行注入 DPI 设置——Navicat 16+ 内置了适配开关,优先走官方路径
Navicat 16+ 的 DPI 修复开关在哪
新版 Navicat 已内置 QT_SCALE_FACTOR 和进程 DPI 感知控制,但默认不开启。关键操作在启动前,而非设置界面里。
- 关闭所有 Navicat 进程(包括托盘图标),任务管理器中确认无
navicat.exe或navicat64.exe - 找到 Navicat 安装目录下的
navicat.exe(如C:\Program Files\PremiumSoft\Navicat Premium 16\navicat.exe) - 右键 → “属性” → “快捷方式”选项卡 → 点击“目标”栏末尾,在引号外追加空格 +
--platform windows:darkmode=2(仅暗色主题需加)或更通用的--dpiawareness 1 - 保存后用该快捷方式启动,不是双击安装目录里的 exe
命令行启动时 DPI 模式失效怎么办
如果你习惯用脚本或终端启动 navicat.exe,直接加参数无效——Windows 不会把命令行参数传给 Qt 的 DPI 初始化逻辑。
- 必须通过快捷方式或修改启动入口:新建一个 .lnk 文件,目标指向
navicat.exe并带--dpiawareness 1 - 或者用 PowerShell 封装启动:
Start-Process "C:\Path\to\navicat.exe" -ArgumentList "--dpiawareness 1" - 避免使用
start navicat.exe --dpiawareness 1:cmd 的start命令不保证参数透传,尤其含空格或特殊字符时 - 注意:
--dpiawareness 1是 Qt 6.4+ 支持的值;旧版 Navicat(基于 Qt 5)需改用QT_SCALE_FACTOR=1.25环境变量(按你的缩放比例设)
Win11 22H2+ 的 Per-Monitor V2 行为干扰
系统启用了多显示器不同缩放(比如笔记本 150%,外接屏 100%)时,即使开了 --dpiawareness 1,窗口拖到另一屏幕仍可能模糊——这是 Windows 的 Per-Monitor V2 渲染策略与 Qt 的兼容边界问题。
- 临时缓解:右键 Navicat 快捷方式 → “属性” → “兼容性” → 勾选“替代高 DPI 缩放行为”,缩放执行选择“系统(增强)”
- 但注意:这个选项会禁用硬件加速,滚动大结果集时卡顿明显,只建议临时调试用
- 真正稳定方案是统一各显示器缩放比例,或让 Navicat 始终停留在主屏(Win11 设置 → “系统” → “显示” → 关闭“让 Windows 尝试修复应用缩放”)
高 DPI 下的模糊从来不是 Navicat 单独的问题,而是 Qt 应用在 Windows 新渲染模型下的适配断层。最稳的解法永远是版本对齐:确认你用的是 Navicat 16.1.7+(Qt 6.5+)、Win11 22H2+,再配合 --dpiawareness 1 启动。少碰注册表 DPI 强制项,那只会把问题从字体模糊转移到窗口闪烁或菜单错位。










