- for Ubuntu(Linux) (5/9)
이 파트에서는 Ubuntu 환경에서 QGroundControl(QGC)의 사용자 인터페이스(UI) 구조를 설명합니다. QGC는 Qt/QML 기반으로 설계되어 있으며, FactSystem 및 전용 UI 컨트롤을 활용합니다. 공식 Developer Guide의 UI 디자인 패턴, 멀티 디바이스 대응, 폰트/팔레트 규칙 등을 반영했습니다.
Fly View : 드론 실시간 모니터링 및 제어
Plan View : 지도 기반 경로 계획
Analyze View : 로그 분석, Inspector, 데이터 시각화
Setup View : 기체 설정, 센서 보정, 펌웨어 업데이트
QML은 선언형 UI 언어로, C++ 컨트롤러와 연동
Vehicle 객체의 데이터가 Fact 객체로 노출되고 QML에 바인딩되어 UI 자동 반영
MVC 변형 패턴: QML(View) ↔ C++(Controller) ↔ FactSystem(Model)
QGC는 태블릿 중심 설계지만 동일 코드로 데스크탑/작은 화면 지원
QML 레이아웃 유연성을 활용해 반응형 UI 제공
Ubuntu HiDPI 모니터, 다중 모니터 환경에서도 적응
QGCPalette와 QGCMapPalette를 사용해 색상 지정
직접 색상 지정 금지 → 라이트/다크 모드 호환성 유지
ScreenTools를 통해 해상도와 DPI 기반 자동 폰트 크기 조정
QGCButton, QGCLabel, QGCComboBox: 기본 컨트롤.
DropButton, QGCView, QGCViewDialog, SetupPage: 주요 UI 구성.
표준 QML 대신 QGC 컨트롤을 사용하는 것이 권장됨.
Fact 객체는 UI와 데이터 바인딩을 지원
FactMetaData로 유효성 검증, 범위, 단위 자동 처리
FactGroup 확장을 통해 새로운 센서 데이터도 UI 자동 표시
Mesa 드라이버 업데이트 필요
GStreamer 설치 후 Fly View에서 영상 스트리밍 지원
다중 모니터 연결 시 레이아웃 깨짐 → QGC 설정에서 Scaling 조정