我正在为一种简单的脚本语言实现代码编辑器,并且一直在使用 Qt 代码编辑器示例(http://doc.qt.io/qt-5/qtwidgets-widgets-codeeditor-example.html)作为使用行号实现 QPlainTextEdit。该示例使用基本小部件的 fontMetrics() 方法“horizontalAdvance”来查询单个字符的宽度(或更好的前进)。
该方法QFontMetrics::horizontalAdvance(QChar)
(参见http://doc.qt.io/qt-5/qfontmetrics.html#horizontalAdvance -1 )可以在 Qt 文档中找到,但我的实现似乎缺少这种方法。
我在带有 Visual Studio Enterprise 2017 版本 15.7.3 的 Windows 10 上使用 Qt 5.10.1 'msvc2017_64'。我已经在标题中搜索了缺少的方法,但只找到QTextLine::horizontalAdvance()
了我不需要的方法。
我已将QFontMetrics::horizontalAdvance(QChar)
调用替换为QFontMetrics::width(QChar)
使用当前字体(Consolas)的调用,但我不确定它是否适用于每种可能的字体。
问题 1) QFontMetrics::horizontalAdvance() 是否已从当前版本的 Qt 中删除,我的安装是否存在错误或遗漏了什么?
问题 2)获得特定(非比例)字体预付款的正确方法是什么?
感谢您阅读本文并提供帮助!