Чтобы расширить / реализовать пользовательский виджет с несколькими строками (например, QTextEdit), мне нужно преобразовать координаты виджета в текстовую позицию, а текстовую позицию — в координаты.
Например. Щелчок мышью по тексту устанавливает позицию курсора там.
Например, использование клавиш со стрелками изменит положение курсора, которое необходимо нарисовать.
Рисование текста производится с помощью какой-то линии, например:
painter.drawText(
textRect,
Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap |Qt::TextJustificationForced,
text());
Таким образом, если текст составляет около 130 символов, а позиция курсора находится в позиции (например, 60).
Как получить QPoint / QPointF, на котором нарисован этот символ 60?
Если пользователь щелкнет в позиции 110×16, какой символ в этой точке?
Я посмотрел функцию для QFontMetrics и QPainter, а также класса QTextCursor. Но я не нашел никакого решения.
Задача ещё не решена.
Других решений пока нет …