水平滚动 QTextEdit 到特定的列号
Horizontal Scroll QTextEdit to specific column number
我有一个 QTextEdit
并给出了一个列号,比如 x
,我想水平滚动(通过调用 QTextEdit.horizontalScrollBar().setValue()
到一个值,使得列 x
是 QTextEdit
中的第一个可见列。有什么办法可以做到这一点吗?
据我所见,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)
我有一个 QTextEdit
并给出了一个列号,比如 x
,我想水平滚动(通过调用 QTextEdit.horizontalScrollBar().setValue()
到一个值,使得列 x
是 QTextEdit
中的第一个可见列。有什么办法可以做到这一点吗?
据我所见,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)