WorkBuddy 字体模糊源于 Qt 在高 DPI 屏幕(尤其 X11)未正确启用缩放适配,需通过 QT_AUTO_SCREEN_SCALE_FACTOR=1 等环境变量强制启用,而非字体或 fontconfig 问题。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

WorkBuddy 的字体模糊本质是 Qt 应用在高 DPI 屏幕上未正确启用缩放适配,不是字体本身质量问题。
为什么 Linux(尤其是 X11)下字体特别糊?
WorkBuddy 基于 Qt 构建,默认使用系统原生字体渲染路径。X11 下 Qt 无法自动读取桌面环境的 DPI 缩放设置(如 GNOME 的 scaling-factor 或 KDE 的 forceFontDPI),导致字体被拉伸渲染而非按逻辑像素重绘。
- 常见现象:
QPainter::begin: Paint device returned engine == 0, type: 2类日志不直接相关,但伴随模糊时大概率是渲染上下文初始化失败 - 只影响 X11;Wayland 会继承 compositor 缩放,通常正常
- 不是
fontconfig配置问题,改~/.fonts.conf无效
启动时强制启用 Qt 高 DPI 支持
必须通过环境变量干预 Qt 启动行为,不能靠 UI 设置或配置文件生效。
使用 draw.io(.drawio 格式)和 SVG 生成兼容 Microsoft Visio 的架构图。当用户需要以下任一场景时触发: - 用于 Visio 或技术文档的架构/系统/网络图 - 带连接标注的分层控制系统图 - 将 draw.io XML 转换为稳定、可嵌入的 SVG - 修复 Visio 或 draw.io 无法打开的故障排查类图表 - 任何需专业级布局且文本可编辑的图表
- 在启动 WorkBuddy 前设置:
QT_SCALE_FACTOR=1.5(数值按显示器实际缩放比调整,如 200% 就用2) - 更推荐用
QT_AUTO_SCREEN_SCALE_FACTOR=1,让 Qt 自动探测屏幕 DPI(需确保xrandr --listmonitors输出准确) - 若仍模糊,追加
QT_FONT_DPI=96(或你屏幕真实 DPI,用xrandr --verbose | grep dpi查) - 完整命令示例:
QT_AUTO_SCREEN_SCALE_FACTOR=1 QT_FONT_DPI=144 ./workbuddy
macOS 上字体发虚的特殊处理
macOS 的 Quartz 渲染与 Qt 的合成逻辑存在兼容层缺陷,尤其在非默认缩放(如“更大文本”模式)下。
- 禁用 Qt 的子像素抗锯齿:
QT_MAC_WANTS_LAYER=1+QT_QPA_PLATFORM=offscreen不可行,会丢 GUI - 真正有效的组合是:
QT_ENABLE_HIGHDPI_SCALING=1+NSHighResolutionCapable=true(需确认 WorkBuddy 的Info.plist已包含该键,否则手动补上) - 避免在“系统设置 > 显示器 > 缩放”里选“更多空间”,优先选“默认”或“更大文字”——后者由 macOS 原生接管字体渲染
高 DPI 适配不是开关式功能,Qt 版本、桌面协议、显卡驱动都参与其中。哪怕设置了 QT_AUTO_SCREEN_SCALE_FACTOR=1,如果显卡驱动未正确报告物理 DPI(比如某些 Intel 开源驱动),依然会 fallback 到模糊渲染。动手前先用 xrandr --verbose 或 macOS 的 system_profiler SPDisplaysDataType 确认基础参数是否可信。

















