QTextDocument / QTextBlock / QTextBlockFormat

Alles rund um die Programmierung mit Qt
Antworten
DarkWotan
Beiträge: 65
Registriert: 18. Mai 2006 10:03

QTextDocument / QTextBlock / QTextBlockFormat

Beitrag von DarkWotan »

Hallo,

vorweg: ich habe mit mehreren Suchbegriffen gesucht, auch Google bemüht und in anderen Foren gestöbert. Ich bin dennoch nicht auf eine Lösung gestoßen.

Ich verwende eine QPlainTextEdit zum Editieren von Quellcode. Nun bin ich bei der Entwicklung auf die Eigenheit von QTextDocument gestoßen, seine Inhalte in QTextBlocks zu verwalten. Einen neuen Block füge ich hinzu, indem ich <Return> drücke. Jedoch bleibe ich im gleichen Block, wenn ich <Shift + Return> drücke. Diese Semantik stört mich für einen Quelltexteditor. Auch ist es hinderlich beim Entwickeln eines in jeder Situation einwandfrei arbeitenden Zeilennummernfeldes, da ich (anscheinend?) nur Zugriff auf die Blocknummer bzw. die erste Zeilennummer im gesamten Dokument, aber ausgehend von einem Textblock, habe. Das "Code Editor Example" aus der Dokumentation hat für dieses "Problem" keine Lösung. Ich suche also nach einer Möglichkeit,
a) entweder das gesamte Dokument nur als einen einzigen Block handzuhaben, den ich auch mit einem normalen <Return> nicht verlasse, oder
b) jede Zeile als einen Block, bestehend aus maximal je einer Zeile, zu verwenden

Was ist semantisch korrekter und wie gehe ich das dann an? Ich habe unter anderem nach einer Möglichkeit gesucht, für ein QTextDocument das Default-QTextBlockFormat mit nonBreakableLines : true für alle Blöcke zu setzen. Aber anscheinend komme ich nur über den QTextCursor an den aktuellen Block? Ich verwende Qt 4.5.
DarkWotan
Beiträge: 65
Registriert: 18. Mai 2006 10:03

Beitrag von DarkWotan »

/push

weiß hier nur niemand eine Antwort oder weiß jemand, dass das gewünschte so nicht erreichbar ist? Warum ich auch immer solche komplizierten Probleme haben muss :-(
NothingSpecial
Beiträge: 28
Registriert: 5. Juli 2009 16:06

Beitrag von NothingSpecial »

Kannst du nicht einfach das Shirt+Return durch ein Return ersetzen?
Antworten