2010-06-09 14 views
10

Jak przetworzyć sygnał w podklasie? Powiedzmy, że moja podklasa pochodzi od QTextEdit i jest zainteresowana sygnałem textChanged. Wydaje się głupie, aby połączyć obiekt z samym sobą, powinienem był w stanie po prostu zastąpić metodę textChange - ale nie jest to virtual.Jak przetwarzać sygnały w podklasie Qt?

Jaki jest zaakceptowany sposób na zrobienie tego?

Odpowiedz

11

Nie można wdrożyć/zastąpić sygnał, więc jedynym sposobem jest stworzenie nowego gniazda i podłączyć go do TextChanged():

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

Może wydaje się to głupie, ale tak to zrobiłem: łącząc moją klasę pochodną z sygnałem emitowanym przez klasę nadrzędną.

Ale jestem zainteresowany, jeśli są jakieś inne rozwiązania!

1

Jest całkiem ok, aby podłączyć sygnał do gniazda w tej samej klasie. Skorzystaj z gniazda i podłącz go do textChanged(QString)