대부분의 개발자들이 이미 알고 있듯이, Qt Quick Controls 을 사용하면 원하는대로 쉽게 사용자 정의를 할 수 있는 다양한 스타일의 기존 컨트롤 라이브러리를 활용하여 사용자 인터페이스 를 개발하는데 걸리는 시간을 절약 할 수 있습니다. Qt Quick Controls 2 모듈은 탁월한 성능 향상으로 차세대 UI 컨트롤을 제공합니다.

11월 말 릴리스 예정인 Qt 5.8에서의 Qt Quick Controls 2.1의 내용을 간단히 살펴 보겠습니다.

Qt Quick Controls 2의 첫 번째 릴리스에서는 1 세대 Qt Quick Controls가 임베디드 및 모바일 기능을 제대로 수행하지 못하는 영역에 중점을 두고 작업했습니다. 다음 릴리스 추가 되는 기존의 데스크톱 플랫폼에서 컨트롤의 동작을 향상시키는 새로운 몇 가지 기능을 소개 합니다.

 

호버 효과

호버 (hover) 효과는 가장 많이 요청됐던 기능 중 하나입니다. 우리는 이미 Qt 에 호버의 작동 코드를 사용하고 있습니다. 즉, 사용자 정의 컨트롤과 스타일에 호버 효과를 구현하는 것이 가능했지만 호버 효과는 첫 번째 Qt Quick Controls 2 릴리스에 적용되지 않았습니다. Qt 5.8 에서는 Materials 와 Universal 스타일에서 호버 효과를 표현할 수 있습니다. 이 효과로도 마우스 포인터가 있는 플랫폼에서 컨트롤을 보다 다양하게 활용할 수 있습니다. Universal 스타일의 호버 효과가개 효과가 어떻게 표현되는지 보려면 다음 동영상을 확인하십시오.

 

리플(물결) 효과

호버 효과에 대해 작업하면서서 Material 스타일에서 리플(물결) 효과를 줄 수 있습니다. 다음 동영상을 통해 확인해 볼 수 있습니다.

 

시스템 테마

또한 Material 및 Universal 스타일에 대해 새로운 테마 옵션을 도입했습니다. 새로운 테마는 시스템 (System)으로, 시스템 테마 색상을 기반으로 밝거나 어두운 테마로 간단히 적용하고 해결 될 수 있습니다. 이 기능은 옵트 인 (opt-in) 기능으로, 밝은 테마와 어두운 테마 모두에서 응용 프로그램을 적용하기 위해서 필요합니다. 예를 들어 응용 프로그램에서 아이콘을 사용하는 경우 밝은 버전과 어두운 버전을 모두 제공해야 할 때 필요합니다.

 

플랫폼 유형

우리가 작업해 온 또 다른 일은 일련의 실험적인 “플랫폼”유형을 제공하는 새로운 모듈입니다. 이러한 QML 유형은 Qt 플랫폼 추상화 (Qt Platform Abstraction) 레이어가 제공하는 네이티브 메뉴, 메뉴 모음, 표준 대화 상자 및 시스템 트레이 아이콘 구현을위한 경량 래퍼입니다. 당분간 모든 플랫폼이 이러한 기본 유형을 모두 구현하지는 않기 때문에 Qt 위젯에서 기본 구현을 사용할 수 없는 경우 대체 수단으로 사용됩니다. 플랫폼 유형은 Qt Quick 과 완벽하게 통합되지만, 커스터마이즈가 가능한 Qt Quick Controls와는 달리 Qt Quick primitive를 사용하여 플랫폼 유형을 사용자 정의 할 수 없습니다. Qt Quick Controls 1에서 같은 이름으로 된 오래된 예에서 영감을 얻은 우리는 현대화 된 느낌을 제공하고 플랫폼 유형을 보여주는 새로운 텍스트 편집기 예제를 구현했습니다.

 

새로운 컨트롤

Qt Quick Controls 2 에는 몇 가지 새로운 유형의 QML 이 있습니다. 텍스트 편집기 예제를 구현하는 동안 내장 스타일과 테마와 잘 어울리는 기존의 구분 기호를 사용하는 것이 필요합니다. 우리는 MenuSeparator와 ToolSeparator를 소개했습니다. MenuSeparator와 ToolSeparator는 각각 Menu와 ToolBar에서 사용하도록 설계되었습니다.

또한 ApplicationWindow 및 Page와 동일하여 편리한 “header-content-footer”레이아웃을 제공하는 새로운 Dialog 팝업을 추가했습니다. Dialog는 독립 실행 형으로 제공되는 DialogButtonBox를 사용하여 표준 Button 집합을 구성 할 수있게 합니다.

마지막으로 소개드릴 것은 RoundButton입니다. 둥근 배경을 갖도록 Button 을 사용자 정의하는 것에 개발자들의 많은 요구가 있었습니다. 배경을 사용자 정의하는 것은 간단하지만 이는 기본 배경의 스타일을 잃어 버리는 것을 의미합니다. 우리는 컨트롤을 제공하기로 결정했습니다. RoundButton의 Material 스타일 버전은 elevation 을 지원하므로 쉽게 플로팅 동작 단추를 만드는 데 사용할 수 있습니다. 텍스트 편집기 예제의 터치 UI에서 RoundButton을 사용하여 편집 모드를 아래와 같이 트리거했습니다.

 

향후 계획은?

Qt Quick Controls 2는 이미 Qt Quick Controls 1에 없었던 많은 기능을 제공했지만, Qt Quick Controls 1 에서 누락 된 몇가지 작지만 중요한 기능이 있습니다. 우리는 각 기능에 대해서 지속적으로 버전업 할 예정입니다. 예를 들어, 편집 가능한 ComboBox는 이미 작업을 시작하여, 현재  Qt 5.9의 Qt Quick Controls 2.2에 도입 될 것입니다. Qt Quick Controls 1에서 누락 된 몇 가지 주목할만한 기능은 Action, SplitView, TableView 및 TreeView입니다.

이외에도 업데이트 가능한 기타 항목은 Pickers, SegmentedButton, persistent Drawer, floating / transient header 와 footer, 작업 표시 줄, 새로 고침, 멀티 터치 지원, 일부 새로운 스타일 등이 있습니다.

본 문서는 qt.io 의 “Qt Quick Controls 2.1 and Beyond” 을 번역한 블로그 입니다.