菜单字体过小需在“工具→选项→外观→常规字体”(Linux/Windows)或“Navicat→设置→常规→界面字体”(macOS)中设置,而非编辑器字体路径;Linux下还需确保LANG=zh_CN.UTF-8、安装Noto Sans CJK SC等字体并配置QT_SCALE_FACTOR。
菜单字体过小 ≠ 编辑器字体设置路径
linux 版 navicat 的菜单(连接列表、对象树、顶部菜单栏)字体不归「编辑器→字体」管,它走的是系统级 ui 字体链。你改了 工具→选项→编辑器→字体,菜单照样小得眯眼——这是设计如此,不是配置漏了。
真正控制菜单字体的地方在:工具→选项→外观→常规字体(Windows/Linux)或 Navicat→设置→常规→界面字体(macOS)。但注意:Linux 下这个设置仅对 Qt 渲染的 UI 区域生效,且依赖系统字体渲染能力。
- 若改完仍模糊/过小,大概率是系统缺失高质量中文字体或未启用 ClearType 类抗锯齿(Linux 下对应 fontconfig 配置)
- Ubuntu/Debian 用户建议装
fonts-wqy-microhei或fonts-noto-cjk,然后执行sudo fc-cache -fv - 不要选“文泉驿正黑”,它在高 DPI 屏上字距异常;优先用
Noto Sans CJK SC或WenQuanYi Micro Hei,字号设为 10–11pt
为什么改了常规字体,菜单还是方块或乱码
这不是字体没生效,而是 Navicat 启动时根本没读到正确的 locale 和字体上下文。Linux 版本质是 Wine 封装的 Windows 应用,Qt 层和 Java Swing 层对 LANG 和 FONTCONFIG_PATH 敏感度极高。
必须确认三点:
- 启动前已设置
LANG=zh_CN.UTF-8(不是zh_CN,缺.UTF-8后缀会 fallback 到 ASCII) -
fc-list :lang=zh能列出至少一个可用中文字体(如WenQuanYi Micro Hei) - 启动命令显式带环境变量,例如:
LANG=zh_CN.UTF-8 FONTCONFIG_PATH=/etc/fonts ./navicat17-premium-cs-x86_64.AppImage
只改 Navicat 内部设置,不碰启动环境,90% 场景下菜单都会维持默认小字号+乱码状态。
v15+ 版本菜单字体缩放被禁用?检查高级选项
从 v15 开始,Navicat 在 Linux 下默认关闭了 UI 缩放支持——即使你调大了 外观→常规字体,菜单也可能卡在 8pt 不动。这不是 bug,是 Qt 插件层主动限制了 DPI 感知逻辑。
解法只有两个:
- 在
工具→选项→高级中勾选启用高 DPI 缩放(部分版本叫使用系统缩放比例),然后重启 - 如果该选项灰掉不可点,说明当前 Wine 环境未声明支持缩放,需在启动脚本里加:
export QT_SCALE_FACTOR=1.25(按需调整 1.25→1.5) - 注意:
QT_SCALE_FACTOR对 Java Swing 组件(如结果网格)无效,只影响 Qt 原生控件(菜单、对话框、按钮)
AppImage 启动时字体失效的硬性修复点
AppImage 格式在 UOS、Deepin、Kali 等发行版上容易丢环境变量,尤其 GTK_FONT_NAME 和 QT_QPA_PLATFORMTHEME。菜单字体小,往往是因为这两个变量为空,导致 Qt fallback 到极小的 DejaVu Sans。
临时验证方式:终端运行
env GTK_FONT_NAME="Noto Sans CJK SC 11" QT_QPA_PLATFORMTHEME=qt5ct ./navicat17-premium-cs-x86_64.AppImage
若此时菜单变大,则问题定位成功。长期方案是把这两行写进桌面快捷方式(.desktop 文件的 Exec= 行),而不是改 start_navicat——后者只对 tar.gz 包有效,AppImage 不读它。
别指望重启一次就全好。Linux 版 Navicat 的字体栈是三层嵌套:系统 locale → Wine 字体映射 → Qt 渲染引擎。任一层断开,菜单就回归原始尺寸。每次改完都得重启,且必须确认终端 echo 出的环境变量已真实注入进程。


















