Probleme mit QTextEdit->setPlainText
Probleme mit QTextEdit->setPlainText
Hallo!
Ich habe ein Problem bei der Ausgabe in einem QTextEdit.
Ich möchte mittels setPlainText() ein einfaches Char-Array (char ar[15000])
in einem QTextEdit ausgeben.
Jetzt habe ich das Problem, dass im QTextEdit Linefeeds angezeigt werden obwohl keine im Array vorhanden sind. Diese Linefeeds tauchen auch immer nach den selben Zeichenreihen auf.
Ist vielleicht irgendein Problem bekannt, das das QTextEdit oder die Methode setPlainText() haben?
Ich hoffe, dass mir irgendjemand einen Tip geben kann.
Grüße Melle_87
Ich habe ein Problem bei der Ausgabe in einem QTextEdit.
Ich möchte mittels setPlainText() ein einfaches Char-Array (char ar[15000])
in einem QTextEdit ausgeben.
Jetzt habe ich das Problem, dass im QTextEdit Linefeeds angezeigt werden obwohl keine im Array vorhanden sind. Diese Linefeeds tauchen auch immer nach den selben Zeichenreihen auf.
Ist vielleicht irgendein Problem bekannt, das das QTextEdit oder die Methode setPlainText() haben?
Ich hoffe, dass mir irgendjemand einen Tip geben kann.
Grüße Melle_87
Habe deinen Vorschlag gleich mal ausprobiert.
Bekomme dann aber eine Fehlermeldung:
error C2440: '<function-style-cast>': 'char [10001]' kann nicht in 'QLatin1Char' konvertiert werden
Ach so, mir ist aufgefallen, dass mein Array nicht 15000 Bytes hat, sondern 10001. Aber das sollte ja eigentlich keine Rolle spielen...
Bekomme dann aber eine Fehlermeldung:
error C2440: '<function-style-cast>': 'char [10001]' kann nicht in 'QLatin1Char' konvertiert werden
Ach so, mir ist aufgefallen, dass mein Array nicht 15000 Bytes hat, sondern 10001. Aber das sollte ja eigentlich keine Rolle spielen...
Im Endeffekt läuft das aber auf
hinaus läuft, nur über den Umweg myarray -> QLatin1String -> QString::Qstring(const QLatin1String)
Code: Alles auswählen
edit->setPlainText(QString::fromLatin1(myarray));Kannst du mal skizzieren, wie die Daten in das Array kommen?Melle_87 hat geschrieben:Also auch mit QLatin1String() verschwinden diese Linefeeds nicht...
Am Ende landet im TextEdit aber wieder ein QString, das ist die klar? Wenn du jetzt selber gleich QString einsetzt, nutzt du das implicit Sharing von Qt, wodurch du am Ende sogar weniger Speicher brauchst, als über ein eigenes char-Array.QString werde ich nicht verwenden, wegen Unicode.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
setPlainText ist hier wohl der letzte den ich als fehlerhaft bezeichnen würde... wer weiß was da für Steuerzeichen drin sind welche dann als LineFeed interpretiert werden... minimal kompilierbares Beispiel und wir werden sehen was falsch ist.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Non printable characters hört sich eigentlich gut an.
Die Linefeeds tauchen oft auch nach folgenden Zeichenreihen auf:
\C- und \C|
Ich konnte aber bisher nichts finden, dass es sich dabei um non printable characters handelt.
Wenn ich den Inhalt des QTextEdits in einen Editor kopiere sind die Linefeeds nicht mehr vorhanden. Es wird alles am Stück ausgegeben. Auch wenn ich mir die Hex-Werte ansehe, kann ich keine CRs oder LFs entdecken.
Die Linefeeds tauchen oft auch nach folgenden Zeichenreihen auf:
\C- und \C|
Ich konnte aber bisher nichts finden, dass es sich dabei um non printable characters handelt.
Wenn ich den Inhalt des QTextEdits in einen Editor kopiere sind die Linefeeds nicht mehr vorhanden. Es wird alles am Stück ausgegeben. Auch wenn ich mir die Hex-Werte ansehe, kann ich keine CRs oder LFs entdecken.
Zuletzt geändert von Melle_87 am 8. Dezember 2010 08:55, insgesamt 2-mal geändert.