Я реализую редактор кода для простого языка сценариев и использую пример редактора кода 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, но в моей реализации этот метод отсутствует.
Я использую Qt 5.10.1 'msvc2017_64' в Windows 10 с Visual Studio Enterprise 2017 версии 15.7.3. Я искал заголовки для отсутствующего метода, но нашел только QTextLine::horizontalAdvance()
, который мне не нужен.
Я заменил вызов QFontMetrics::horizontalAdvance(QChar)
вызовом QFontMetrics::width(QChar)
, который работает с моим текущим шрифтом (Consolas), но я не уверен, что это нормально для каждого возможного шрифта.
Вопрос 1) Был ли QFontMetrics::horizontalAdvance() удален из текущей версии Qt, моя установка глючит или я что-то пропустил?
Вопрос 2) Как правильно получить аванс за конкретный (не пропорциональный) шрифт?
Спасибо, что читаете это и пытаетесь помочь!
QFontMetrics::horizontalAdvance(QChar)
не было доступно до Qt5. 11. - person G.M.   schedule 14.06.2018