Hallo,
ich habe ein QTextEdit. Im dazugehörigen QTextDocument liegt der Text Zeile für Zeile in je einem QTextBlock vor.
Gegeben eine bestimmte Zeilennummer möchte ich diese Zeile mittig im QTextEdit darstellen. Also entsprechend scrollen. Wie mache ich das am geschicktesten?
Gruß
QTextEdit, bestimmte Zeile (QTextBlock) zentrieren.
-
- User
- Beiträge: 38
- Registriert: Sonntag 7. Dezember 2008, 18:43
falls ich dich richtig verstanden habe: den Text "mittig" darstellen kannst du, indem du QTextEdit.setAlignment mit dem entsprechenden Parameter aufrufst, Zeilen umbrechen geht mit QTextEdit.setLineWrapMode .Panke hat geschrieben:Hallo,
ich habe ein QTextEdit. Im dazugehörigen QTextDocument liegt der Text Zeile für Zeile in je einem QTextBlock vor.
Gegeben eine bestimmte Zeilennummer möchte ich diese Zeile mittig im QTextEdit darstellen. Also entsprechend scrollen. Wie mache ich das am geschicktesten?
Gruß
Ganz grob vielleicht sowas:
Perfekt ist das nicht, es trifft die Mitte nicht ganz, aber zwischen den ganzen Koordinaten und Positionen hab ich dann die Lust verloren
Code: Alles auswählen
def scroll_to_line(self, textedit, lineno):
document = textedit.document()
wanted_block = document.findBlockByLineNumber(lineno)
cursor = QTextCursor(wanted_block)
rect = textedit.cursorRect(cursor)
textedit.verticalScrollBar().setSliderPosition(rect.y())