是否可以选择设置QTextEdit
中每行的最大字符数?
我有一个应用程序可以打开模板,并将获取的QLineEdit
字符串粘贴到QTextEdit
中的特定行。
我试过了:
QTextEdit.setMaximumWidth(something)
QTextEdit.setLineWrapMode(QTextEdit.WidgetWidth)
QTextEdit.setWordWrapMode(QtGui.QTextOption.WrapAtWordBoundaryOrAnywhere)
这可以在应用程序中直观地完成工作,但是当将文本保存到文件时,QTextEdit中的自动换行设置将被忽略(并且提到的那些行可以是1000个字符长)。
我明白了:
QTextDocument.setTextWidth()
拥有它,但不是QTextEdit
。
答案 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让我走上正轨。