为什么Qt中的字体会出现模糊或像素化的现象? |
您所在的位置:网站首页 › cleartype字体不生效 › 为什么Qt中的字体会出现模糊或像素化的现象? |
问题描述
我所有的字体都出现像素化,所以我使用了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 |