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.
QTextDocument / QTextBlock / QTextBlockFormat
-
NothingSpecial
- Beiträge: 28
- Registriert: 5. Juli 2009 16:06