首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt的QFontMetrics::horizontalAdvance()缺少代码编辑器实现

Qt的QFontMetrics::horizontalAdvance()缺少代码编辑器实现
EN

Stack Overflow用户
提问于 2018-06-14 19:50:19
回答 2查看 3K关注 0票数 7

我正在为一种简单的脚本语言实现一个代码编辑器,并一直使用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文档中找到,但是我的实现似乎缺少这个方法

我在Windows10上使用QT5.10.1 'msvc2017_64‘,VisualStudioEnterprise2017版本为15.7.3。我在头文件中搜索了丢失的方法,但只找到了QTextLine::horizontalAdvance(),这不是我所需要的。

我已经将QFontMetrics::horizontalAdvance(QChar)调用替换为对QFontMetrics::width(QChar)的调用,该调用正在使用当前的字体(Consolas),但我不确定它是否适合每种可能的字体。

问题1) QFontMetrics::horizontalAdvance()是否已从当前版本的Qt中删除,我的安装是否有问题,还是我遗漏了什么?

问题2)获得特定(非相关)字体的预付款的正确方法是什么?

感谢您阅读这篇文章并尽力帮助您!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-04 19:45:12

正如通用汽车。在一条评论中告诉我的:

文档声明QFontMetrics::horizontalAdvance(QChar)在Qt5.11之前是不可用的。

因此,切换到Qt5.11解决了这个问题。

票数 11
EN

Stack Overflow用户

发布于 2020-08-29 11:06:58

您可以使用width而不是horizontalAdvance

成员函数width列在QFontMetrics的过时成员中,它建议使用horizontalAdvance而不是width。我想这两个成员函数有类似的行为。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50864893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档