QGroundControl(QGC) 개발자 가이드

- for masOS (5/9)

by 연화유심

Part 5. User Interface Design (사용자 인터페이스 디자인)

이 파트에서는 macOS 환경에서 QGroundControl(QGC)의 사용자 인터페이스(UI) 구조를 설명합니다. QGC는 Qt/QML 기반으로 설계되어 있으며, FactSystem과 전용 UI 컨트롤을 적극 활용합니다. 공식 Developer Guide의 UI 디자인 원칙을 반영했습니다.


1) QGC UI의 주요 View

Fly View : 실시간 드론 모니터링/제어

part 5 그림 1.jpg Image source: QGroundControl Documentation (CC BY 4.0, https://creativecommons.org/licenses/by/4.0/)

Plan View : 비행 경로 및 Survey 계획

part 5 그림 2.jpg Image source: QGroundControl Documentation (CC BY 4.0, https://creativecommons.org/licenses/by/4.0/)

Analyze View : 로그 분석, MAVLink Inspector, 파라미터 관리

part 5 그림 3.jpg
part 5그림 5.jpg
Image source: QGroundControl Documentation (CC BY 4.0, https://creativecommons.org/licenses/by/4.0/)

Setup View : 센서 보정, 펌웨어 업데이트, 기체 설정

part 5 그림 4.jpg Image source: QGroundControl Documentation (CC BY 4.0, https://creativecommons.org/licenses/by/4.0/)


2) QML 기반 UI 구조

QML UI + C++ Controller + FactSystem 구조

Vehicle 데이터가 Fact 객체로 QML에 바인딩됨

MVC 변형 패턴 기반


3) 멀티 디바이스 대응

동일 QML 코드로 macOS 데스크탑과 iOS 태블릿 모두 지원

반응형 레이아웃으로 화면 크기별 자동 조정

Retina Display에서 고해상도 UI 자동 적용


4) 폰트 및 컬러 팔레트

QGCPalette, QGCMapPalette 사용

라이트/다크 모드 대응

ScreenTools로 Retina 해상도에 맞춘 폰트 크기 적용


5) QGC 전용 UI 컨트롤

QGCButton, QGCLabel, QGCComboBox 등 전용 컨트롤

DropButton, QGCView, QGCViewDialog, SetupPage 등 고급 컨트롤

UI 개발 시 표준 QML 대신 QGC 컨트롤 권장


6) FactSystem 활용

Fact 객체는 데이터와 UI를 자동 동기화

FactMetaData는 값의 범위, 단위, 유효성을 관리

FactGroup을 통해 모듈별 데이터를 그룹화하고 UI 자동화


7) macOS 환경 특징

Retina Display에 최적화된 UI

다중 모니터 연결 시 UI Scaling 필요

macOS 보안 권한 문제로 앱 실행 차단 시 '보안 및 개인정보 보호'에서 허용해야 함


작가의 이전글QGroundControl(QGC) 개발자 가이드