为了扩展/实现具有多行的自定义小部件(如QTextEdit),我需要将小部件坐标转换为文本位置,将文本位置转换为坐标 .

例如 . 鼠标单击文本设置光标位置 . 例如,使用箭头键将改变需要绘制的光标位置 .

文本的绘制使用如下行:

painter.drawText(
    textRect, 
    Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap |Qt::TextJustificationForced, 
    text());

enter image description here

因此,如果文本大约是130个字符,并且光标位置在位置(例如)60 .

如何获取绘制此角色60的QPoint / QPointF?如果用户点击110x16的位置,那么这个角色是什么?

我查看了QFontMetrics和QPainter的函数,以及QTextCursor类 . 但我没有找到任何解决方案 .