2010-06-09 8 views
10

Wie verarbeite ich ein Signal von in einer Unterklasse? Nehmen wir an, meine Unterklasse ist von QTextEdit abgeleitet und interessiert sich für das Signal . Es scheint albern, ein Objekt mit sich selbst zu verbinden, ich sollte die textChange Methode einfach überschreiben können - aber es ist nicht virtual.Wie verarbeitet man Signale in einer Qt-Unterklasse?

Was ist der akzeptierte Weg, dies zu tun?

Antwort

11

Sie können nicht implementieren/überschreiben, um ein Signal, so dass der einzige Weg, um einen neuen Slot zu schaffen ist und verbinden Sie es mit Textchanged():

connect(this, SIGNAL(textChanged(QString)), this, SLOT(slotTextChanged(QString))); 
3

Vielleicht scheint es albern, aber so habe ich es gemacht: meine abgeleitete Klasse mit dem Signal der Elternklasse verbinden.

Aber ich bin interessiert, wenn es andere Lösungen gibt!

1

Es ist vollkommen in Ordnung, ein Signal an einen Schlitz zu verbinden in der selben Klasse. Implementieren Sie Ihren Steckplatz und verbinden Sie ihn mit textChanged(QString)

Verwandte Themen