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

Alles rund um die Programmierung mit Qt
Antworten
Hans_Wurst
Beiträge: 36
Registriert: 8. Mai 2008 16:44

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

Beitrag 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
Hans_Wurst
Beiträge: 36
Registriert: 8. Mai 2008 16:44

Beitrag 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);
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Hans_Wurst
Beiträge: 36
Registriert: 8. Mai 2008 16:44

Beitrag 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
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag 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 ...
Antworten