c++ - Qt的QFontMetrics::horizo​​ntalAdvance()在代码编辑器实现中丢失

标签 c++ qt visual-studio-2017 qt5.10

我正在为一种简单的脚本语言实现代码编辑器,并一直使用Qt代码编辑器示例(http://doc.qt.io/qt-5/qtwidgets-widgets-codeeditor-example.html)作为使用行号实现QPlainTextEdit的指南。该示例使用基本窗口小部件的fontMetrics()方法“horizo​​ntalAdvance”来查询单个字符的宽度(或更高级)。

可以在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::horizo​​ntalAdvance()是否已从当前版本的Qt中删除,我的安装是否有问题或错过了什么?

问题2)获取特定(非比例)字体的正确字体的正确方法是什么?

感谢您阅读本文并为您提供帮助!

最佳答案

正如G.M.在评论中告诉我的那样:

The documentation states that QFontMetrics::horizontalAdvance(QChar) wasn't available until Qt5.11.



因此,切换到Qt 5.11可以解决此问题。

关于c++ - Qt的QFontMetrics::horizo​​ntalAdvance()在代码编辑器实现中丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50864893/

相关文章:

multithreading - QT多线程QImage改变

xamarin - Xamarin 项目没有 PCL 选项

c++ - 使用单独的 Boost 库编译,无需安装 Boost

c++ - 目录列表程序无法正确打开

c++ - 将互斥锁绑定(bind)到对象

c++ - 包括 Box2D、GLUT 等库

qt - 使用 TableView 作为 ListView 委托(delegate)

c++ - 整数集之间的映射

visual-c++ - Visual C++ Redistributable for Visual Studio 2017 的 MSM 文件在哪里?

.net - 添加新的 NuGet 包时如何解决 OutOfMemoryException 错误?