Seite 1 von 1
QTextEdit, bestimmte Zeile (QTextBlock) zentrieren.
Verfasst: Donnerstag 24. September 2009, 20:04
von Panke
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ß
Re: QTextEdit, bestimmte Zeile (QTextBlock) zentrieren.
Verfasst: Donnerstag 24. September 2009, 20:16
von vorlautboy
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ß
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 .
Verfasst: Donnerstag 24. September 2009, 21:49
von Panke
Das meine ich leider nicht. Der Text passt nicht komplett ins QTextEdit. Es enstehen vertikale Scrollbalken. Ich möchte jetzt so scrollen, dass eine gegebene Zeile in der Mitte des QTextEdits erscheint.
Verfasst: Freitag 25. September 2009, 09:42
von lunar
Ganz grob vielleicht sowas:
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())
Perfekt ist das nicht, es trifft die Mitte nicht ganz, aber zwischen den ganzen Koordinaten und Positionen hab ich dann die Lust verloren

Verfasst: Freitag 25. September 2009, 11:05
von Panke
Danke, sieht vernünftig aus. Probiere ich aus, sobald ich zu Hause bin.