Probleme mit QTextEdit->setPlainText

Alles rund um die Programmierung mit Qt
Melle_87
Beiträge: 31
Registriert: 1. Dezember 2010 12:41

Beitrag von Melle_87 »

@franzf: Ich habe einen Ringbuffer in dem sich Bytes befinden, die von der Seriellen Schnittstelle empfangen wurden. Diese werden dann in der richtigen Reihenfolge (alt -> neu) an das char-Array übergeben. So, dass ich mit dem einzelnen Befehl setPlainText() die Daten im QTextEdit ausgeben kann. Denn die Funktion append() war zu langsam und die Ausgabe wurde "ruckelig" und immer langsamer.
Giesbert
Beiträge: 33
Registriert: 16. Oktober 2009 00:50
Wohnort: Hessdorf bei Erlangen
Kontaktdaten:

Beitrag von Giesbert »

Hi,

du meinst vorher steht da:
"\C-" oder "\C|" im ascii string?
UNd was kommt dann als nächstes?
und wie genau zeigt sich das im TextEdit? als Zeilenumbruch? oder als "Schmierzeichen" wie z.B. Kästchen etc?
Melle_87
Beiträge: 31
Registriert: 1. Dezember 2010 12:41

Beitrag von Melle_87 »

Also es steht z.B. folgendermaßen im Array:
ar[0] = '\'
ar[1] = 'C'
ar[2] = '-' oder ar[2] = '|'
ar[3] = irgendwas ...

Aber ich denke doch nicht mehr, dass es daran liegt. Denn es tritt auch nach anderen Zeichen auf. Z.B. nach Klammern ')'.
Und danach kommen irgendwelche andere Zeichen. Im Fall von ')' folgt nach dem unerwünschten Zeilenumbruch eigentlich immer '('.
Im Fall von \C- und \C| müsste ich nochmal schauen was nach dem Zeilenumbruch folgt.
Und im QTextEdit ist das als Zeilenumbruch zu sehen.
Giesbert
Beiträge: 33
Registriert: 16. Oktober 2009 00:50
Wohnort: Hessdorf bei Erlangen
Kontaktdaten:

Beitrag von Giesbert »

Ixch glaub e, wir haben uns in den posts vor den letzten 5 missverstanden und jetzt verstehe ich eher, was du willst.

Das textedit macht Zeilenumbrüche an stellen, wo du es nicht erwartest. Aber zeilenumbrüche werden nach wörtern gemacht, und /(-| etc. sein keine Wortzeichen und damit kann danach umgebrochen werden.

Ob man das abstellen kann, so das nur bei Leerzeichen umgebrochen wird, weiß ich nicht, asche auf mein Haupt 8)
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Mit einem Testprogramm wären wir da wohl schon eher drauf gekommen, aber so... :roll:
Die einzigen Möglichkeiten sind hier aufgelistet: http://doc.trolltech.com/4.6/qtextoptio ... pMode-enum
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Melle_87
Beiträge: 31
Registriert: 1. Dezember 2010 12:41

Beitrag von Melle_87 »

Also ich geben ja keine Wörter in dem Sinne aus. Sondern empfangen Bytes von der Seriellen Schnittstelle. Es gibt so gut wie keine Leerzeichen.
Den horizontalen Slider habe ich deaktiviert. D.h. die Breite des Textedits ist fest. Ich möchte, dass das TextEdit immer bis zum Rand vollgeschrieben wird. Kann ich Zeilenumbrüche irgendwie komplett deaktivieren? So, dass sich das TextEdit überhaupt nicht um die Formatierung kümmert?
Melle_87
Beiträge: 31
Registriert: 1. Dezember 2010 12:41

Beitrag von Melle_87 »

@Christian81:
Ok also muss ich nach dem WarpMode schauen.
Ich habe jetzt gesehen, dass es bei den Eigenschaften des TextEdits eine Eigenschaft lineWarpMode gibt. Dort ist WidgetWidth eingetragen. Eigentlich hört sich das doch gut an oder? Oder stört da irgendwie der vertival Slider?
Melle_87
Beiträge: 31
Registriert: 1. Dezember 2010 12:41

Beitrag von Melle_87 »

Ok. Ich habs gefunden! :D
Mit den beiden Eigenschaften des QTextEdits lineWarpMode und lineWarpColumnOrWidth lässt sich dieses Problem beheben.
Das TextEdit bricht dann immer nach angegebenen Zahl unter lineWrapColumnOrWidth um.
Danke für eure Hilfe! :)
Antworten