QDockWidget의 고급 구현 프레임 워크 인 KDDockWidgets

KDQDock위젯

그룹 KDAB는 Qt, C ++ 및 OpenGL 애플리케이션을위한 소프트웨어 컨설팅 업체입니다. 다른 플랫폼 (데스크톱, 임베디드 및 모바일)에 대한 Qt 애플리케이션을 처음부터 개발할 수있는 개인지도 제공 인기있는 모든 프레임을 Qt로 전송합니다.

수년에 걸쳐, KDAB는 QDockWidget의 개발에 기여하고 자금을 지원했습니다.. 하지만 QdockWidget을 사용하여 변경 및 버그 수정을 구현하는 데 며칠이 걸렸기 때문에 좋은 옵션이 아닌 것으로 판명되어 KDDockWidgets가 탄생했습니다.

KDDockWidgets는 QDockWidgets를위한 고급 도킹 프레임 워크, QDockWidgets가 지원하지 않는 기능을 추가하여 사용을 확장합니다.

QdockWidget은 기본적으로 GUI 코드와 로직을 상태와 결합합니다. 으로 새로운 기능으로 진행하기가 매우 어렵습니다. 다른 플랫폼 내에서 구현하는 데 큰 복잡성을 유발합니다. 일련의 그래픽 사용자 인터페이스의 기본 구성 요소이므로 원하는 곳으로 전체 창 요소 (도구 모음, 위젯 그룹 등)를 이동할 수 있습니다.

그러나, KDAB는 QDockWidgets 코드 유지 관리가 그리 쉽지 않다고 주장했습니다. 그는 다음과 같이 언급합니다.

KDDockWidgets는 광범위한 사용자 정의가 필요한 두 가지 프로젝트에서 작업 한 후 제 정신을 유지해야 할 필요성에서 태어났습니다. 업스트림에서 직접 작업하려고했지만 회귀 율이 너무 높아졌습니다.

그리고 또 다른 하나는 비공개 API, 가짜 마우스 이벤트 및 이벤트 필터를 사용하는 경로를 택했습니다. 처음에는 좋은 생각 같았지만 결국 고통의 세계가되었습니다. 또한 고객의 요청에 대해 더 창의적이어서 더 나은 도킹 프레임 워크가 필요하다는 것이 분명했습니다.

주요 문제는 디자인입니다, 매우 모 놀리 식이지만 구성 가능합니다 (애니메이션에 대해 소수의 사람이라도 사용자가 사용할 수있는 기능을 선택할 수 있음). 스파게티 코드 (논리와 구성 요소 상태를 즐겁게 혼합)를 사용합니다. 따라서 모든 변경으로 인해 많은 수의 회귀가 발생할 수 있습니다.

이것이 KDAB가 KDDockWidgets를 만들기로 결정한 이유입니다.,이를 통해 QDockWidgets 디자인을 크게 단순화하는 동시에 특정 상황에 대한 적응을 용이하게합니다.

KDDockWidgets는 다음 기능을 제공합니다.

  • 부동 창에 위젯을 도킹하고 해당 그룹을 기본 창에 도킹 할 수 있음
  • 기본 창뿐만 아니라 모든 창에 고정
  • 기본 창 중앙에 도킹
  • 기본 창 내의 중앙 위젯에서 분리 가능한 탭 지원
  • 도킹 영역의 탭 표시 줄에서 탭을 분리 할 수 ​​있음
  • 다양한 구성 요소를 결합하여 여러 탭을 결합하는 기능.
  • 사용자가 맞춤 설정하거나 자체적으로 제공 할 수 있도록 내부 도움말 위젯을 노출합니다.
  • 구성 요소 그룹은 외부 창 (이 구성 요소 그룹 만 포함)에서 주 창 (Qt 5.10에서 부분적으로 구현 된 기능)으로 자유롭게 전환 할 수 있습니다.
  • 탭 위젯 사용자 지정
  • 제목 표시 줄 사용자 지정
  • 창틀 사용자 지정
  • 주요 변경 사항은 GUI에서 요소를 제거하기위한 정확한 표시기를 추가하는 것 외에도 중앙 위젯의 개념이 더 이상 특정 요소가 아니기 때문에 사라지는 것입니다.

새로운 조직은 그래픽 인터페이스에서 로직을 명확하게 분리합니다.이므로 기본 런타임은 Qt Quick 인터페이스에 쉽게 재사용 가능 (궁극적으로 예상되는). 또한 인터페이스를 쉽게 사용자 정의 할 수 있으며 사용자는 인터페이스의 모든 부분에 대해 자신의 위젯을 제공 할 수 있습니다.

또한, KDDockWidgets는 프레임 워크 용이므로 인터페이스를 쉽게 재정의 할 수 있습니다. 사용자 지정 모양과 동작을 제공합니다. KDDockWidgets는 오픈 소스 프레임 워크입니다. 이는 GPLv2 및 GPLv3 라이선스하에 있습니다.

KDDockWidgets 코드와 데모를 사용할 수 있습니다. 다음 링크에서.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.