То, что вы предлагаете, работает только для шрифтов фиксированной ширины, я думаю.Итак, предполагая, что это то, что у вас есть, вы можете получить ширину шрифта с помощью 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)