我正在为一种简单的脚本语言实现代码编辑器,并且一直使用Qt代码编辑器示例(http://doc.qt.io/qt-5/qtwidgets-widgets-codeeditor-example.html)作为实现带行号的QPlainTextEdit的指南。该示例使用基本窗口小部件的fontMetrics()方法' horizontalAdvance'查询单个字符的宽度(或更好的提前)。
方法video.setPlayPauseListener(new CustomVideoView.PlayPauseListener() {
@Override
public void onPlay() {
System.out.println("Play!");
videoPlaypauseIcon.setVisibility(View.VISIBLE);
}
@Override
public void onPause() {
System.out.println("Pause!");
videoPlaypauseIcon.setVisibility(View.INVISIBLE);
}
});
(请参阅http://doc.qt.io/qt-5/qfontmetrics.html#horizontalAdvance-1)可以在Qt文档中找到,但我的实现似乎缺少此方法。
我正在使用Qt 5.10.1' msvc2017_64'在Windows 10上使用Visual Studio Enterprise 2017版本15.7.3。我已经在标题中搜索了丢失的方法,但只找到了QFontMetrics::horizontalAdvance(QChar)
这不是我需要的。
我已使用当前字体(Consolas)调用QTextLine::horizontalAdvance()
来替换QFontMetrics::horizontalAdvance(QChar)
调用,但我不确定它是否适用于所有可能的字体。
问题1)QFontMetrics :: horizontalAdvance()是否已从当前版本的Qt中移除,是我的安装工具还是我错过了什么?
问题2)获取特定(非比例)字体的正确方法的正确方法是什么?
感谢您阅读本文并尝试提供帮助!
答案 0 :(得分:4)
答案 1 :(得分:3)
您可以使用width
代替horizontalAdvance
。
成员函数width
列在
Obsolete Members for QFontMetrics,并建议使用horizontalAdvance
代替width
。
我猜这两个成员函数的行为类似。