尽管设置了相同的字体,但在Qt和Blink中渲染的文本看起来非常不同

时间:2017-04-01 20:27:29

标签: css qt fonts

上方字体来自QLabel QFont("Arial")。 较低的字体使用QWebEngine呈现,例如Chromium/Blink backend,使用css

font-family: Arial, Helvetica, sans-serif;
font-size: 8pt;

enter image description here

有没有办法让眨眼看起来像Qt那样黑暗和锐利?它看起来很模糊,因为应用程序中的两个文本都放在一起,看起来不够好。

(Windows 8.1上的Qt5.8 msvc 2015)

修改

原因是自52版本以来的铬确实降低了GDI的支持率。在以前的版本中,可以通过禁用DirectWrite标志来激活GDI渲染。所以基本上我需要用不同的铬后端重新编译Qt。或者可能使用Cent浏览器,因为尽管使用了最新的铬,它仍然支持该标志。

1 个答案:

答案 0 :(得分:0)

首先使用QFontInfo::family()获取字体系列。 此函数返回Windows系统字体的匹配系列名称。

QFont f("Arial");
QFontInfo info(f);
QString family = info.family();

简单来说" QFontInfo对象用于确定窗口系统中实际使用的字体的属性。"

使用QFontInfo返回的系列名称,并按QWebEngine或使用CSS为QWebEngineSettings::setFontFamily设置相同内容。

有用的链接:

http://doc.qt.io/qt-5/qfontinfo.html#family

http://doc.qt.io/qt-5/qwebenginesettings.html#setFontFamily