为什么Qt中的字体会出现模糊或像素化的现象?

您所在的位置:网站首页 cleartype字体不生效 为什么Qt中的字体会出现模糊或像素化的现象?

为什么Qt中的字体会出现模糊或像素化的现象?

2024-02-19 04:54| 来源: 网络整理| 查看: 265

问题描述

我所有的字体都出现像素化,所以我使用了AntiAliasing,但没有帮助.如您所见,图像本身中的像素字体:

我在So,Qtforums等上尝试了不同的解决方案,但对我没有任何帮助:(

我尝试了:

ClearType text的不同组合却没有起作用,因为默认情况下,所有文本在Windows和Chrome 上看起来都不错,但是仅使用Qt> Qt,它变得像素化.

将Windows Aero主题更改为经典...

但它们都没有帮助.

这是我的PC规格:

Windows:7 Ultimate Pyside2版本:5.14.2.1 解决方案:1360 x 768 推荐答案

我使用的是BrownPro字体,并且文字在所有分辨率上都模糊,但在低分辨率下更为明显.

我能够通过将字体的提示偏好设置为:PreferNoHinting来解决问题.将其应用于应用程序级别,在各处解决问题.

这是文档: https:///doc.qt.io/QT-5/qfont.html#hintingpreference-enum

这是我使用的代码:

QFontDatabase::addApplicationFont(":/fonts/BrownPro-Bold.ttf"); QFontDatabase::addApplicationFont(":/fonts/BrownPro-Regular.ttf"); QFontDatabase::addApplicationFont(":/fonts/BrownPro-Light.ttf"); QFont brown_pro_font("BrownPro"); brown_pro_font.setHintingPreference(QFont::HintingPreference::PreferNoHinting); //This line did the trick QApplication::setFont(brown_pro_font); 其他推荐答案

我去年碰巧与QT合作,我使用QML来构建应用程序的UI部分.

QT本身更喜欢我们使用QML来构建UI,因为它们编写了与旧发动机相比的UI引擎更好的UI引擎.

在Pyqt的情况下,您使用的仅使用Python方法通常不建议使用,我并不是说QML版本是Pixel Perfect的.它在绘制曲线方面仍然很不好(但这不是我们通常需要的东西).就您的问题而言,QML对您有效(文本渲染更好).

您可能会有点努力寻找QML的学习资源.但是至少要试一试,是的,比只有python的方法要容易得多.

其他推荐答案

尝试查看Pyqt5使用的字体:

import PyQt5 from pyQt5 import QtGui dir(QtGui.QFont)

结果将显示您对QFOND的所有需求,并且可以使用字体:

[..., 'Helvetica',...,'SansSerif',..., 'Serif',..., 'Times', ...

您可以尝试添加自定义字体,但需要测试每种字体.

例如,文档告诉我们告诉我们:

在Windows中,"快递"字体的请求自动更改为" Courier New",这是快递的改进版本,可以进行平滑的缩放.可以通过设置prevermap样式策略来选择较旧的"快递"位图字体(请参阅setstystylestgy()). 一旦找到字体,其余属性就按优先级顺序匹配:

fixedPitch() pointSize() (see below) weight() style()

本文地址:https://www.itbaoku.cn/post/2088273.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3