Signal bei wordwrap versenden

Alles rund um die Programmierung mit Qt
Antworten
HangLoose
Beiträge: 5
Registriert: 8. April 2005 16:05

Signal bei wordwrap versenden

Beitrag 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
Goos
Beiträge: 360
Registriert: 17. August 2004 10:10
Wohnort: Black Forest

Re: Signal bei wordwrap versenden

Beitrag von Goos »

HangLoose hat geschrieben: Hat jemand ne Idee, wie ich das ganze lösen könnte?
Ja ;)
HangLoose
Beiträge: 5
Registriert: 8. April 2005 16:05

Re: Signal bei wordwrap versenden

Beitrag 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
Goos
Beiträge: 360
Registriert: 17. August 2004 10:10
Wohnort: Black Forest

Re: Signal bei wordwrap versenden

Beitrag von Goos »

Ok, ueber den Preis reden wir spaeter :D

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
HangLoose
Beiträge: 5
Registriert: 8. April 2005 16:05

Beitrag 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
Dateianhänge
ripcc1.jpg
ripcc1.jpg (88.96 KiB) 5592 mal betrachtet
Goos
Beiträge: 360
Registriert: 17. August 2004 10:10
Wohnort: Black Forest

Beitrag 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

Code: Alles auswählen

pMyTextEdit->paragraphs()-1
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
HangLoose
Beiträge: 5
Registriert: 8. April 2005 16:05

Beitrag 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
HangLoose
Beiträge: 5
Registriert: 8. April 2005 16:05

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