2012-10-08 5 views
0

기본 QDialog를 Qt :: Popup으로 설정된 WindowFlags와 함께 사용하여 일반적인 팝업 오버레이로 나타납니다. Windows에서는 모든 것이 훌륭하게 작동합니다. 기본 창 외부를 클릭하거나 실제로 다른 곳을 클릭하면 사라집니다. 그러나 Mac OSX에서 상단의 메뉴 막대를 클릭하거나 창 크기를 조정하면 팝업은 그대로 유지됩니다. 마우스 입력/이탈/이동/누르기 이벤트에 대한 내부 처리가 전혀 없으므로 처리가 완료되지 않은 것입니다. Windows에서는 자동으로 처리됩니다.메인 윈도우를 클릭 할 때 Mac에서 팝업으로 QDialog가 숨기지 않습니다.

메인 애플리케이션이 더 이상 시스템의 현재 컨텍스트가 아닐 때 어떤 생각을하면 닫을 수 있습니까?

+0

부모 창에 포커스가 없어지면 제대로 숨 깁니다. 제목 표시 줄의 크기를 변경하거나 클릭 할 때가 아닙니다. 이게 네가 말하는거야? – jdi

+0

예, 그것이 제가 의미했던 것입니다. –

답변

0

사용자가 기본 창을 클릭 할 때 기본 이벤트 필터를 설치하고 활성 팝업 대화 상자 (QApplication :: activePopupWidget())를 닫을 수 있습니다. 네이티브 필터를 설치하는 방법은 다음 answer을 참조하십시오.

관련 문제