Как изменить фон родительского виджета, когда дочерний виджет имеет фокус?
Я хотел бы выделить QFrame, если один из них 'У дочерних виджетов есть фокус (поэтому пользователи знают, где искать курсор ;-)
используя что-то вместе
ui->frame->setFocusPolicy(Qt::StrongFocus);
ui->frame->setStyleSheet("QFrame:focus {background-color: #FFFFCC;}");
выделяет QFrame, когда я щелкаю по нему, но он теряет фокус, когда выбирается один из его дочерних виджетов.
Возможные подходы:
Я мог быconnect()
QApplication::focusChanged(old,now)
и проверять каждый новый объект, если он является дочерним элементом моего QFrame, но это становится грязным.
Я также мог бы создать подкласс каждого дочернего виджета и переопределить /focusInEvent()
focusOutEvent()
и реагировать на это, но с большим количеством различных виджетов, это также много работы.
Есть ли более элегантное решение?