水平滚动 QTextEdit 到特定的列号

Horizontal Scroll QTextEdit to specific column number

我有一个 QTextEdit 并给出了一个列号,比如 x,我想水平滚动(通过调用 QTextEdit.horizontalScrollBar().setValue() 到一个值,使得列 xQTextEdit 中的第一个可见列。有什么办法可以做到这一点吗?

据我所见,QTextEdit.horizontalScrollBar().setValue() 采用代表像素的值,而不是列号。所以简单地将滚动值设置为 x 是行不通的。

所以我认为你的建议只适用于固定宽度的字体。所以,假设这就是你所拥有的,那么你可以使用 QFontMetrics 获得字体的宽度,然后只需将字体宽度乘以你想要的列号即可。

from PyQt5.QtGui import QFont, QFontMetrics
myfont = QFont("courier", 24)
fm = QFontMetrics(myfont)
f_width = fm.width("A")
QTextEdit.horizontalScrollBar().setValue(f_width * x)