QTextEdit - insert neuer chars verhindern

Alles rund um die Programmierung mit Qt
Antworten
mfernau
Beiträge: 9
Registriert: 27. Mai 2009 18:58

QTextEdit - insert neuer chars verhindern

Beitrag von mfernau »

Hallo!

Ich bin in Sachen Qt ein absoluter Anfänger. Ich arbeite mich gerade ein wenig in die Materie hinein. Erschwerend kommt hinzu, dass ich mit c++ auch noch sehr wenig Erfahrung habe.

Ich schreibe zur Zeit einen Client, der eine SMS versenden soll. Funktioniert schon alles gut soweit. Aber ich möchte ab einer länge von 160 Zeichen keine weiteren Inserts mehr in mein QTextEdit zulassen.
Gibt es ein Signal, dass mich bei einem Insert eines Chars benachrichtigt und den ich dann selektiv einfach "consumen" (also ignorieren lassen) kann? Wie ich mir das denke müsste das ein Signal sein, das 'geworfen' wird _bevor_ das Zeichen in das Model eingefügt wird. Ein späteres wieder herauslöschen würde zwar auch irgendwie funktionieren, wäre aber IMHO eine unsaubere Lösung.

Beste Grüße,
Martin
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Du suchst das keyPressEvent
mfernau
Beiträge: 9
Registriert: 27. Mai 2009 18:58

Beitrag von mfernau »

klingt gut.
Kannst Du mir noch sagen wie ich mich da jetzt anmelde für so ein Event? Das wäre optimal :)
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Aber sicher doch: Events and Event filters
mfernau
Beiträge: 9
Registriert: 27. Mai 2009 18:58

Beitrag von mfernau »

Super, danke.
Damit komme ich klar. Konnte dann mit

Code: Alles auswählen

ui->message->installEventFilter(this);
das aktuelle Objekt als EventFilter für das erwähnte QTextEdit einrichten. Die folgende Abfrage:

Code: Alles auswählen

bool SendSMS::eventFilter(QObject *obj, QEvent *event) {
   if (obj == ui->message && event->type() == QEvent::KeyPress) {
      // returnt in bestimmten Situationen true
   }
   return false;
}
ermöglicht mir das gewünschte Resultat.

Besten Dank!
Antworten