水平滚动QTextEdit到特定列号

时间:2018-06-05 22:09:45

标签: python c++ qt pyqt qtextedit

我有QTextEdit并给出了一个列号,比如说x,我希望能够横向滚动(通过调用QTextEdit.horizontalScrollBar().setValue()到一个值,使列x }是QTextEdit中的第一个可见列。有没有办法做到这一点?

从我看到的情况来看,QTextEdit.horizontalScrollBar().setValue()采用代表像素的值,而不是列号。因此,只需将滚动值设置为x即可。

1 个答案:

答案 0 :(得分:2)

所以你认为你所建议的只适用于固定宽度的字体。因此,假设您拥有的是什么,那么您可以使用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)