2012-07-17 4 views
0

내 앞의 질문은 답이없는 경우에도 도킹 수 있도록, 그래서 내가 그것을 바꿔 보자Qt는 - QMainWindow 너무 작은

그것은 QMainWindow에 관계없이 위젯과 창의 크기의 QDockWidget의 도킹을 수용 할 수 있습니까?

현재 윈도우가 너무 작아 QDockWidget의 최소 크기에 맞지 않으면 도킹하지 않습니다. 메인 윈도우가 위젯에 맞게 커지면 이상적입니다.

미리 감사드립니다.

답변

0

지난 번 질문에 대한 몇 가지 아이디어가 있었지만 제 솔루션이 이상적이지 않다고 생각했습니다. 그래서 아직 고군분투하고 계시다면 저는 대답하려고 노력할 것입니다.

사실 마우스 입력 이벤트를 받고 기본 창 크기를 조정할 때 아무런 문제가 없습니다. 문제는 메인 창 외부에서 QDockWidget을 드래그 할 때 후자는 포커스를 잃고 해당 이벤트를 처리 할 수 ​​없다는 것입니다.

내 아이디어는 QDockWidget에 이벤트 필터를 설치하는 것이 었습니다. 구현시에는 QDockWidget 이동 및 전역 커서 위치 (QCursor::pos())를 추적해야합니다. 커서가 현재 주 창의 내부에 있고 QDockWidget이 움직이는 경우 이는 QDockWidget을 기본 창으로 끌었으며 크기가 최소 크기보다 작 으면 크기를 조정해야한다는 의미입니다.

+0

Qt가이 기능을 가지고 있어야한다고 생각합니다. 결국 그것은 논리적 특징처럼 보일 것입니다. 특히'addDockWidget (Qt :: LeftDockWidgetArea, widget)'처럼 윈도우에 프로그래밍 방식으로 위젯을 추가하면 창 크기가 조정됩니다. 그럼에도 불구하고 당신의 대답은 나에게 방향을 알려주었습니다. 다시 한번 감사드립니다. – monoik