在 Ubuntu 上使用 Qt 5.11.0 进行开发时,如果是在 4K(HiDPI)显示屏环境下,界面出现 字体过小、控件过密或模糊 的问题,这是因为 Qt 5.11 对高分辨率支持不完全自动化,需要手动设置。
✅ 推荐解决方案(针对 Qt Creator)
适用于 Ubuntu + GNOME 桌面 + Qt Creator 5.11
✅ 步骤 1:还原 GNOME 的系统缩放
gsettings reset org.gnome.desktop.interface scaling-factor
或者:
gsettings set org.gnome.desktop.interface scaling-factor 1
保持系统缩放为 1(即 100%),交由 Qt 自己控制缩放。
✅ 步骤 2:使用适当的 Qt 缩放因子
测试发现 QT_SCALE_FACTOR=1.5
更适配 4K(而不是 2)
创建启动脚本:
nano ~/qtcreator4k.sh
内容如下:
#!/bin/bash
export QT_AUTO_SCREEN_SCALE_FACTOR=0
export QT_SCALE_FACTOR=1.5
/opt/Qt5.11.0/Tools/QtCreator/bin/qtcreator "$@"
请根据你的 Qt Creator 实际路径修改
/opt/Qt5.11.0/...
保存后赋予权限:
chmod +x ~/qtcreator4k.sh
以后用这个脚本启动 Qt Creator。
✅ 可选:如果是 Qt App(你自己写的)
在 main.cpp
中加入:
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
再配合环境变量控制缩放。
❌ 不建议同时设置的组合
设置项 | 状态 |
---|---|
scaling-factor=2 | ❌ 不建议与 QT_SCALE_FACTOR 一起使用 |
QT_SCALE_FACTOR=2 | ✅ 推荐(单独使用时) |
GDK_SCALE=2 | ❌ 只针对 GTK 应用,Qt 不需要 |
QT_AUTO_SCREEN_SCALE_FACTOR=1 | ⚠️ 会被 QT_SCALE_FACTOR 覆盖 |
🧪 测试推荐值
显示器 | 分辨率 | 推荐 QT_SCALE_FACTOR |
---|---|---|
4K 13~15寸 | 3840x2160 | 1.5 or 1.75 |
4K 27寸+ | 3840x2160 | 1.25 |