2017-11-21 42 views
1

QTextEdit에 줄당 최대 글자 수를 설정하는 옵션이 있습니까?QTextEdit에서 한 줄당 최대 글자 수를 설정하는 방법

템플릿을 열고 붙여 넣는 앱을 가지고 QLineEdit 문자열을 QTextEdit의 특정 줄에 가져 왔습니다.

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

이 앱에 시각적으로 일을하지만, 파일에 텍스트를 저장할 때은 QTextEdit에서 줄 바꿈 설정은 무시됩니다 (그리고 그 라인이 될 수 있습니다 언급 :

나는 시도 1000 자).

QTextDocument.setTextWidth() 

그것을 가지고 있지만 QTextEdit :

나는 것을 알 수있다. 당신이 절약 텍스트의 폭을 수정해야하는 경우

+0

'textEdit.document(). setTextWidth (width)'. – ekhumoro

+0

textEdit.document(). setTextWidth (width) Qtextedit의 내용을 파일에 저장할 때 아무런 영향을 미치지 않습니다. 그러나 시각적으로 줄 바꿈이 정확합니다. –

답변

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 클래스에 지정된 인수

+0

불행히도 textwrap은 Qtextedit 상자를 긴 문자열처럼 생각합니다. –

+0

@StormShadow. 무슨 소리 야? ** ** 긴 문자열입니다. 그것이 당신이 그것을 여러 줄로 나누어야하는 이유입니다. – ekhumoro

0

내 문제에 대한 해답은 텍스트 랩을 사용하여 저장하기 전에 부분적으로 해결되었고 QTexEdit 상자에 붙여 넣거나 제대로 작동합니다. 이 텍스트 상자는 다른 텍스트 상자를 검색하고 플래그가 지정된 단어를 바꿉니다. 그리고 끝에 텍스트 상자를 저장하는 것만으로 texwrap save를 사용할 때 한 문자열이 감싸지지 않을 것입니다.

이 코드가 작동했습니다.

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

올바른 트랙에 나를 설정해 주셔서 감사합니다. ekhumoro.