如何在QTextEdit中设置每行的最大字符数

时间:2017-11-21 16:24:44

标签: python pyqt pyqt5 qtextedit

是否可以选择设置QTextEdit中每行的最大字符数?

我有一个应用程序可以打开模板,并将获取的QLineEdit字符串粘贴到QTextEdit中的特定行。

我试过了:

QTextEdit.setMaximumWidth(something)
QTextEdit.setLineWrapMode(QTextEdit.WidgetWidth)
QTextEdit.setWordWrapMode(QtGui.QTextOption.WrapAtWordBoundaryOrAnywhere)

这可以在应用程序中直观地完成工作,但是当将文本保存到文件时,QTextEdit中的自动换行设置将被忽略(并且提到的那些行可以是1000个字符长)。

我明白了:

QTextDocument.setTextWidth()

拥有它,但不是QTextEdit

2 个答案:

答案 0 :(得分:1)

如果您需要在保存时修改文本的宽度,可以使用stdlib中的textwrap模块:

import textwrap

def saveText(self, width=100):
    text = self.textEdit.toPlainText()
    with open('somefile.txt', 'w') as stream:
        for line in textwrap.wrap(text, width=width):
            stream.write(line)

可以使用为TextWrapper类指定的关键字参数,以各种其他方式修改文本格式。

答案 1 :(得分:0)

我的问题的答案部分通过使用textwrap解决,并在保存之前将其粘贴到QTexEdit框中,或者wouldent正常工作。 此文本框搜索另一个文本框并替换标记的单词。 最后只保存最终文本框,使用texwrap save时不会包裹一个字符串。

此代码有效。

import textwrap
branchoverview = data["results"][0]['overview']
width = 10
self.QTexEdit_plot.setText(textwrap.fill(str(branchoverview), width=width))

感谢ekhumoro让我走上正轨。