2009-08-13 2 views
3

Qt 4.4를 사용하여 사용자 정의 독 영역을 만들 수 있습니까? 나는 이것을 document이 제안하는 것처럼 Qt 3에서 가능하다는 것을 알고있다. 문서에서 발췌 "... 자신의 도킹 영역을 만들어야하는 경우 QWidget의 하위 클래스를 만들고 하위 클래스에 Q3DockAreas를 추가하는 것이 좋습니다 ...". 그러나 Qt 4에서는 Q3DockArea가 제거되었으며 이제는 QMainWindow 자체가 독 영역을 가지고있는 것으로 보입니다. 기본적으로 위젯을 도킹 할 수있는 독창적 인 독 영역 위젯을 갖고 싶습니다. 이 Dock 영역 위젯은 응용 프로그램의 어느 위치 에나있을 수 있습니다. 어떻게 할 수 있을지에 대한 아이디어가 있습니까?Qt를 사용하는 사용자 정의 독 영역 4.4

답변

4

처음에 Q3DockArea는 Qt4에서 제거되지 않았지만 실제로 추가되었습니다. 제거 된 클래스는 QDockArea입니다. 이전 코드가 있다면이 Q3 * 클래스를 사용할 수 있습니다.

그러나 호환성 클래스를 사용하지 않는 것이 좋습니다. QWidget과 같은 QMainWindow를 사용하는 것은 어떻습니까? 메뉴, 툴바, 상태 표시 줄을 사용하지 않고 상위 위젯으로 만들고 setWindowFlags() 등을 사용하여 최상위 상태를 취소합니다.

이전 스타일의 QDockArea로 사용하고 원하는 곳에 배치하고 QDockWidgets을 추가 할 수 있습니다.

게다가, 현재 Qt는 버전 바로 4.5.2, 오래된 버전 ;-) ​​

+0

내가 독 영역 만 왼쪽에 도킹 할 수 있다는 것입니다 같은 QMainWindow을 만드는 볼 수있는 문제를 사용할 필요가 없습니다입니다 , QMainWindow의 위와 아래. 따라서이 영역에 무언가를 떨어 뜨리면 전체 위젯을 채울 수는 없지만 고정 가능한 영역에만 위치하게됩니다. 멋지지 않아. ;) – Juba

+0

사실이 아닙니다.이 QMainWindow에 centralWidget이 없으면 적어도 단일 도크가 전체 영역을 포함합니다 (허용되는 경우). 도크 영역에는 크기에 고유 한 제한이 없습니다. 그러나 Q3Dock * 클래스는 원하는대로 작동한다고 생각되면 사용하십시오. 또는 QMainWindow의 도킹 부분을 템플릿으로 사용하여 자신 만의 QDockArea 클래스를 작성할 수 있습니다. – hirschhornsalz

관련 문제