Seite 1 von 1

append lässt '\0' nicht unterdrücken

Verfasst: 14. Januar 2009 20:51
von Hans_Wurst
Hallo,

immer wenn ich ein Feld zur Textausgabe erstelle (siehe nachfolgender Code) und in diesem einen String anhängen möchte, gib er mir automatisch immer ein '\0' mit aus. Ich möchte meinen Text aber auch in ein und der selben Zeile einfügen können.
Kann mir jemand sagen wie ich dieses (letzte) '\0' unterdrücken kann?

Code: Alles auswählen

// Ausgabefenster 1:
textBrowserOutput = new QTextBrowser;
textBrowserOutput->append("string");

// Ausgabefenster 2:
plainTextEditOutput = new QPlainTextEdit;
plainTextEditOutput->appendPlainText("string");
Das erhalte ich:
string
string


Das möchte ich gerne erhalten:
stringstring

Verfasst: 14. Januar 2009 21:55
von Hans_Wurst
Hilfreich wäre es auch, wenn jemand wüsste wie ich dem TextEdit sagen kann, dass er zu seiner letzten Zeile und letzten Spalte springen soll. Dann könnte ich auch einfach insertPlainText("String") verwenden.
Dann müsste ich aber garantieren können, dass ich mich am Text-Ende befinde, falls der Anwender die Cursor-Position möglicherweise geändert haben sollte.

Code: Alles auswählen

plainTextEditOutput->insertPlainText(string);

Verfasst: 14. Januar 2009 23:14
von Christian81
Appends a new paragraph with text to the end of the text edit.
Also ist das Verhalten absolut nachvollziebar.

Ich würde mir mal QTextEdit::moveCursor(), QTextEdit::textCursor () und QTextCursor Klasse mal anschauen.

Verfasst: 15. Januar 2009 08:43
von Hans_Wurst
Danke dir für die Hilfe, Christian81.
Ich glaube das ist genau das, wonach ich gesucht habe :)
Falls jemand auf das gleiche Problem stoßen sollte: MoveOperation = QTextCursor::End

Verfasst: 15. Januar 2009 10:11
von RHBaum
und noch was, um Missverstaendnisse vorzubeugen:

'\0' ist kein Zeilensprung. Das Zeichen markiert das Ende des (C-)Strings ...
'\r' oder '\n' oder beide zusammen je nach system markieren einen Zeilensprung.

Ciao ...