Jak zmienić tło widżetu rodzica, gdy fokus potomny ma fokus?

Chciałbym wyróżnić ramkę QFrame, jeśli jeden z jej widżetów potomnych ma fokus (aby użytkownicy wiedzieli, gdzie szukać kursora ;-)

używając czegoś razem

ui->frame->setFocusPolicy(Qt::StrongFocus);
ui->frame->setStyleSheet("QFrame:focus {background-color: #FFFFCC;}");

podświetla ramkę QFrame po jej kliknięciu, ale traci fokus po wybraniu jednego z jej widżetów podrzędnych.

Możliwe podejścia:

mógłbymconnect() QApplication::focusChanged(old,now) i sprawdź każdy nowy obiekt, jeśli jest dzieckiem mojego QFrame, ale robi się to chaotyczne.

Mógłbym także podklasować każdy widget dziecka i reimplementowaćfocusInEvent()/focusOutEvent() i zareaguj na to, ale z wieloma różnymi widżetami, to także dużo pracy.

Czy istnieje bardziej eleganckie rozwiązanie?

questionAnswers(3)

yourAnswerToTheQuestion