代码编辑器实现缺少 Qt 的 QFontMetrics::horizontalAdvance()
Qt's QFontMetrics::horizontalAdvance() missing for Code Editor Implementation
我正在为一种简单的脚本语言实现一个代码编辑器,并且一直在使用 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文档中找到但是我的实现似乎缺少这个方法。
我在 Windows 10 上使用 Qt 5.10.1 'msvc2017_64' 和 Visual Studio Enterprise 2017 版本 15.7.3。我在 headers 中搜索了缺少的方法,但只找到了 QTextLine::horizontalAdvance()
这不是我需要的。
我已将 QFontMetrics::horizontalAdvance(QChar)
调用替换为对 QFontMetrics::width(QChar)
的调用,该调用与我当前的字体 (Consolas) 兼容,但我不确定它是否适用于所有可能的字体。
问题 1) QFontMetrics::horizontalAdvance() 是否已从当前版本的 Qt 中删除,是我的安装有问题还是遗漏了什么?
问题 2) 获得特定(非比例)字体预付款的正确方法是什么?
感谢您阅读本文并尝试提供帮助!
正如 G.M. 在评论中告诉我的那样:
The documentation states that QFontMetrics::horizontalAdvance(QChar) wasn't available until Qt5.11.
所以切换到 Qt 5.11 解决了这个问题。
您可以使用 width
而不是 horizontalAdvance
。
成员函数width
列在
Obsolete Members for QFontMetrics 并且它建议使用 horizontalAdvance
而不是 width
。
我猜这两个成员函数有相似的行为。
我正在为一种简单的脚本语言实现一个代码编辑器,并且一直在使用 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文档中找到但是我的实现似乎缺少这个方法。
我在 Windows 10 上使用 Qt 5.10.1 'msvc2017_64' 和 Visual Studio Enterprise 2017 版本 15.7.3。我在 headers 中搜索了缺少的方法,但只找到了 QTextLine::horizontalAdvance()
这不是我需要的。
我已将 QFontMetrics::horizontalAdvance(QChar)
调用替换为对 QFontMetrics::width(QChar)
的调用,该调用与我当前的字体 (Consolas) 兼容,但我不确定它是否适用于所有可能的字体。
问题 1) QFontMetrics::horizontalAdvance() 是否已从当前版本的 Qt 中删除,是我的安装有问题还是遗漏了什么?
问题 2) 获得特定(非比例)字体预付款的正确方法是什么?
感谢您阅读本文并尝试提供帮助!
正如 G.M. 在评论中告诉我的那样:
The documentation states that QFontMetrics::horizontalAdvance(QChar) wasn't available until Qt5.11.
所以切换到 Qt 5.11 解决了这个问题。
您可以使用 width
而不是 horizontalAdvance
。
成员函数width
列在
Obsolete Members for QFontMetrics 并且它建议使用 horizontalAdvance
而不是 width
。
我猜这两个成员函数有相似的行为。