And*_* H. 3 c++ qt visual-studio-2017 qt5.10
我正在为一种简单的脚本语言实现代码编辑器,并一直使用Qt代码编辑器示例(http://doc.qt.io/qt-5/qtwidgets-widgets-codeeditor-example.html)作为指南用行号实现QPlainTextEdit。该示例使用基本窗口小部件的fontMetrics()方法'horizontalAdvance'来查询单个字符的宽度(或更优地前进)。
可以在Qt文档中找到该方法QFontMetrics::horizontalAdvance(QChar)
(请参阅http://doc.qt.io/qt-5/qfontmetrics.html#horizontalAdvance-1),但我的实现似乎缺少此方法。
我在Windows 10和Visual Studio Enterprise 2017版本15.7.3上使用Qt 5.10.1'msvc2017_64'。我已经搜索了缺少的方法的标题,但是只发现了QTextLine::horizontalAdvance()
那不是我所需要的。
我已将QFontMetrics::horizontalAdvance(QChar)
呼叫替换QFontMetrics::width(QChar)
为正在使用我的当前字体(Consolas)的呼叫,但是我不确定每种可能的字体是否都可以。
问题1)QFontMetrics :: horizontalAdvance()是否已从当前版本的Qt中删除,我的安装是否有问题或错过了什么?
问题2)获取特定(非比例)字体的正确字体的正确方法是什么?
感谢您阅读本文并尝试提供帮助!
您可以使用width
而不是horizontalAdvance
.
该成员函数width
列在
QFontMetrics 的过时成员中,建议使用horizontalAdvance
而不是width
. 我猜这两个成员函数有类似的行为。