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
QTextEdit - insert neuer chars verhindern
Aber sicher doch: Events and Event filters
Super, danke.
Damit komme ich klar. Konnte dann mit
das aktuelle Objekt als EventFilter für das erwähnte QTextEdit einrichten. Die folgende Abfrage:
ermöglicht mir das gewünschte Resultat.
Besten Dank!
Damit komme ich klar. Konnte dann mit
Code: Alles auswählen
ui->message->installEventFilter(this);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;
}Besten Dank!