У меня есть QTextEdit
, где я добавляю процедурные строки. По умолчанию QTextEdit
разрывает строку, если размер окна меньше ширины строки, а часть строки появляется на следующей строке. Мне нужно активировать горизонтальную полосу прокрутки и установить размер текстовой области больше размера макета. Как добиться такого поведения. Я использую PySide2
.
Редактировать:
Я пробовал этот подход, но не получаю реальную длину (ширину) линии
for line in [line_one, line_two, line_three, line_four, line_five]:
f_met = QtGui.QFontMetrics(QtGui.QFont())
width = f_met.width(str(line))
print width
if width > 300:
self.text_edit.setLineWrapMode(QtWidgets.QTextEdit.FixedPixelWidth)
self.text_edit.setLineWrapColumnOrWidth(width)
self.text_edit.append(line)
Как получить правильная длина / ширина линии?
Edit2:
Вот полный код. Не имеет значения, как долго это линия, она всегда ломает линию. Вот пример:
class MainWidget(QtWidgets.QMainWindow):
def __init__(self):
super(MainWidget, self).__init__()
self.cent_ly = MW()
self.text_edit = QtWidgets.QTextEdit()
self.cent_ly.vlayout.addWidget(self.text_edit )
self.setCentralWidget(self.cent_ly )
line = 'BlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBl'
met = QtGui.QFontMetrics(QtGui.QFont())
width = met.width(str(line))
self.text_edit.setLineWrapMode(QtWidgets.QTextEdit.FixedPixelWidth)
self.text_edit.setLineWrapColumnOrWidth(width)
self.text_edit.append(line)
class MW(QtWidgets.QWidget):
def __init__(self):
super(MW , self).__init__()
self.vlayout = QtWidgets.QVBoxLayout()
self.setLayout(self.vlayout)
w = MainWidget()
w.show()