Seite 1 von 1
Signal bei wordwrap versenden
Verfasst: 8. April 2005 16:26
von HangLoose
Moin Moin,
ich habe hier zwei QTextEdit Widgets, die ich synchronisieren möchte, d.h. wenn im rechten QTextEdit ein Zeilenumbruch erfolgt, möchte ich im linken QTextEdit z.b. eine Leerzeile einfügen.
Am einfachsten wäre ja jetzt, wenn das QTextEdit dieses Signal von sich aus verschicken würde. Leider ist das aber nicht implementiert, habe jedenfalls nichts gefunden.
Nun war meine Überlegung, das ich mein eigenes Widget einfach von QTextEdit ableite und das Signal dort implementiere. Allerdings weiß ich nicht so recht, *wo* ich das Signal implementieren soll.
Hat jemand ne Idee, wie ich das ganze lösen könnte?
Gruß HangLoose
Re: Signal bei wordwrap versenden
Verfasst: 9. April 2005 17:01
von Goos
HangLoose hat geschrieben:
Hat jemand ne Idee, wie ich das ganze lösen könnte?
Ja

Re: Signal bei wordwrap versenden
Verfasst: 9. April 2005 17:23
von HangLoose
Goos hat geschrieben:HangLoose hat geschrieben:
Hat jemand ne Idee, wie ich das ganze lösen könnte?
Ja

nu sag schon deinen preis
Gruß HL
Re: Signal bei wordwrap versenden
Verfasst: 10. April 2005 15:43
von Goos
Ok, ueber den Preis reden wir spaeter
Vielleicht erzaehlst uns noch, was du genau anstellen willst und wieso du deine QTextEdits synchronisieren moechtest.
Ganz trivial ist das naemlich nicht, da man in einem TextEdit natuerlich auch wild rumeditieren kann.
Goos
Verfasst: 10. April 2005 16:06
von HangLoose
Hi Goos,
ok hier noch ein paar mehr Infos. Es handelt sich dabei um einen Chat-Client, siehe Attachment.
Die Anzeige des eigentlichen Chatfenster habe ich in zwei QTextEdits aufgeteilt. Das linke QTextEdit zeigt dabei den Usernamen und je nach Konfiguration noch die Zeit an. Das rechte QTextEdit zeigt die Message des jeweiligen User an.
Wenn jetzt die Message zu lang für das rechte QTextEdit ist, wird nen wordwrap gemacht.
Bisher hab ich es so gelöst, das ich mir die Breite vom rechten Widget geholt habe, diesen Wert durch 7 dividiert habe(rausgefunden durch rumprobieren) und mit diesem Wert die WrapColumnOrWidth gesetzt habe.
Wenn jetzt ne Message eintrifft, wird geprüft ob sie *länger* als die
WrapColumnOrWidth ist, wenn ja wird im linken QTextEdit ne Leerzeile eingefügt usw.
Das Ganze gefällt mir irgendwie überhaupt nicht und wird mit der Auswahl von mehreren Fonts/Größen noch schlechter zu händeln. Am liebsten wäre mir ein Signal das bei einem wordwrap gesendet wird. QTextEdit selbst scheint so ein signal anscheinend aber nicht bereitzustellen.
Wenn du noch mehr Info's brauchst, einfach bescheid sagen
Gruß HL
Verfasst: 11. April 2005 09:52
von Goos
Moin
So wie ich das seh, solltest in deinem Fall ganz gut mit Paragraphen zurecht kommen.
Jede Message die du in dein Textedit schreibst ist ein Paragraph.
Die Anzahl der Leerzeilen die du dann links brauchst kannst ueber
Code: Alles auswählen
pMyTextEdit->lineOfChar(n, pMyTextEdit->paragraphLength(n))
ermitteln, wobei n die Nummer des neu angefuegten Paragraphen ist
...zu ermitteln ueber
Du musst dann halt nur noch eine Groessenaenderung deines Textedits abfangen und in dem Fall per Schleife ueber alle Paragraphen dein linkes Control wieder fuellen.
Goos
Verfasst: 11. April 2005 14:57
von HangLoose
Moin
auf die Idee mit den Paragraphen bin ich ja noch gar nicht gekommen, das hört sich auf jedenfall interessant an

.
Mal sehen ob ich heute abend noch die Zeit finde und das Ganze mal ausprobiere.
Auf jeden Fall schon mal vielen Dank für den Tip
Gruß HL
Verfasst: 11. April 2005 18:57
von HangLoose
Hi Goos,
hab eben mal mit den Paragraphen rumgespielt. Das Ganze sieht sehr vielversprechend aus

.
Allerdings hab ich atm etwas wenig Zeit um das ganze Programm mal eben umzustellen, ne endgültige Erfolgsmeldung kann also noch etwas dauern

.
Gruß HL