在Windows 10上,3840x2160分辨率下150%的缩放比例下,Qt Creator界面过大

10

我在Windows 10上安装了Qt 5.10 SDK。我认为HiDPI问题在Qt 5.6中已经得到解决,但是Qt Creator似乎仍然“太大”:

enter image description here

我有遗漏的地方吗?我的分辨率是3840x2160,缩放比例为“推荐”的150%。后台中的Visual Studio大小正确。

3个回答

16

我猜QtCreator的默认HighDpiScaleFactorRoundingPolicyRound,所以你只能缩放到1或2而不能是1.5。

正确的解决方案是设置环境变量:

export QT_SCALE_FACTOR_ROUNDING_POLICY=PassThrough
./qtcreator.exe

4
这是正确的答案。Qt在Windows上已经支持高DPI缩放一段时间了,甚至使用了这个代码路径,只是它将检测到的DPI四舍五入为整数。因此,在Windows上,当分辨率为3840x2160并设置为150%缩放时,它会显示UI按2倍缩放。仅设置该环境变量就可以解决问题。运行“sysdm.cpl”->高级->环境变量和“新建”(用户或系统任选),名称:“QT_SCALE_FACTOR_ROUNDING_POLICY”,值:“PassThrough”。在批处理脚本中,输入“set QT_SCALE_FACTOR_ROUNDING_POLICY=PassThrough”。感谢@Bob Brown提供正确的答案。 - user1371019
这也适用于 GNU/Linux。 - Thulashitharan D
兄弟,非常感谢!我遇到这个问题已经好几年了,但没有意识到有如此简单的解决方案! - Moohasha
在我的Linux(Gnome)上无法工作。 - undefined

9
它可能有自己的hidpi功能,与传统的windows功能不同,后者只是直接放大,因此它在您的显示器上看起来更大,这又被您应用的缩放所放大。
这里的信息来看,似乎可以通过设置自定义比例系数或自定义DPI感知方案来解决此问题。
您可以将它们设置为系统环境变量,或使用一些基本的cmd脚本在每个应用程序级别上进行设置:
@echo off 
set QT_SCALE_FACTOR=1
qtcreator.exe

2
是的,设置环境变量 QT_SCALE_FACTOR=1.5 解决了这个问题。然而,这不是最终用户应该做的事情。 - juzzlin
这是Qt可移植性的副作用 - 它必须在没有hidpi概念和支持它的平台上工作。 Qt已经支持“默认”hidpi一段时间了 - 也就是说,它尝试看起来与DPI无关,这意味着在hidpi监视器上实际上会更大,当您在此基础上添加150%的缩放时,它会变得夸张。如果不进行任何缩放,它可能看起来还不错,但由于Windows shell不支持hidpi,因此它看起来会太小。 - dtech
它部分地起作用。Qt Creator的某些部分已经被Gnome缩放到1.5倍,而其他部分则没有。如果我使用QT_SCALE_FACTOR=1.5,那么某些部分会被放大1.5倍,而其他部分(例如菜单和状态栏)会被放大2.25倍。此外,图标模糊不清,主题中的某些线条在随机位置上只有1像素或2像素。 - undefined
@MarkJeronimus,你应该提交一个错误报告,尤其是如果其他答案也没有起作用的话。 - undefined

3

我在Windows 10上使用nextcloud客户端时也遇到了相同的问题,缩放比例为150%,解决方法如下:

(a) 在Windows 10中设置全局环境变量QT_SCALE_FACTOR_ROUNDING_POLICY,值为PassThroughWindows弹出对话框用于设置变量

您可以通过按下Windows键并搜索variables来完成此操作...

或者

(b) 包含以下内容的批处理文件:

@echo off
set QT_SCALE_FACTOR_ROUNDING_POLICY=PassThrough
start C:\path\to\nextcloud.exe
exit

然后启动该批处理文件。(当然,您需要根据实际的nextcloud.exe位置进行调整路径。)

[如果您希望在启动时运行此程序,请按下windows和r键,输入shell:startup,并在现在打开的文件夹中留下指向批处理文件的链接。(在Nextcloud应用程序中停用“在启动时运行”,以确保批处理文件真正运行。)]

(对我来说,a更方便。)


旧贴,但这确实帮了我很多,谢谢! - Dean Knight

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接