2013-10-04 3 views
1

복잡한 레이아웃을 사용하면 자식이 포커스가있는 경우 상위 QWidget에 신호를 보내려면 어떻게해야할까요?자식 QWidget에 포커스가 있는지 확인하는 방법

하나의 아이디어는 모든 자식 QWidgets에 이벤트 필터를 설치하는 것이지만 다소 어리석은 일입니다.

어버이 QWidget을 실제로 사용하지 마십시오 자녀 중 하나가 포커스가 있다는 것을 알고 있습니까?

편집 : 어쩌면 그 다음

How to change a parent widget's background when a child widget has focus?

답변

0

게으르다. 그래서 내가이 머신에서 코드를 붙여 넣을 수 없다.

추가 내 위젯 기본 클래스에 부울는 "listenToFocusChangesFromChildren는"

그때 나는 모든 부모를 통해 루프 내 기본 클래스 focusInEvent을 변경하고, 참으로 그 부울 세트가 그 어떤의 "childGotFocus"를 호출합니다.

게으 르지만 매우 효과적 인 것 같습니다.

2

당신은 (OK입니다) 필요한 모든 차일을위한 이벤트 필터를 설치하거나 할 필요가 각 자녀 QWidget::focusInEvent을 대체 할 수있는 유일한 방법입니다,이 발견 모니터링.

+0

내 질문에이 방법을 제안했습니다. 나는 다른 것을 찾고 있었고 수백만 가지의 이벤트 필터를 원하지 않았습니다. – 0xbaadf00d

관련 문제