한국어
Qt

QPA 플러그인과 EGLFS

makersweb 2017.11.21 22:32 조회 수 : 153

 

QPA는 Qt5의 플랫폼 추상화 레이어이며 근본적으로 QWS  Qt 4의 플랫폼 포트를 대체하기 위한 목적으로 개발됨윈도우 시스템 통합을 위한 QPlatformIntegration QPlatformWindow와 같은 클래스들이 존재한다. QPA는 Qt5에서 정식으로 지원하였으며 4.8 에서 실험적으로 적용됨.

 

QPA 플러그인을 개발 하기 위한 문서가 많지 않아 다른 플러그인을 보고 API를 어떻게 구현하는지 확인 해야 함다만 테스트를 위해 Qt 5와 함께 제공되는 최소한의 플러그인 2개와 임베디드 리눅스 시스템에서 잠재적으로 사용할 수 있는 여러 플랫폼 플러그인들(EGLFS, LinuxFB, DirectFB, Wayland)이 있으며 이 것들은 예제로 사용할 수 있는 다른 플러그인들이다.

 

qtbase/src/plugins/platforms/minimal/

 

qtbase/src/plugins/platforms/minimalegl/

 

 

알려진 문제점으로는 입력과 포커스처리, Qt단위 테스트를 수행 하지 않았음.

이문제로 인한 특정 위젯(QWidget)으로 입력 이벤트가 전달 되지 않는 문제도 발생됨.

위에서 설명한 것처럼 QPA는 Qt4.8에서 실험적인 적용되었기 때문에 이 버전에서 QPA사용은 문제 발생의 여지가 있다는 것을 의미함.

 

QPA에 대해 자세히 설명하는 영상이 있다. 

https://youtu.be/qCWWxBf6vko

 

EGLFS

 

EGLFS X11 또는 Wayland와 같은 실제 윈도우시스템 없이 EGL  OpenGL ES 2.0을 기반으로 Qt 응용 프로그램을 실행하기 위한 플랫폼 플러그인이다.

EGLFS는 첫 번째 최상위 창 (QWidget 또는 QQuickView)을 전체 화면으로 만든다.

이 창은 다른 모든 최상위 위젯 ( : 대화 상자팝업 메뉴 또는 콤보 상자의 드롭 다운)이 합성되는 루트 위젯 창으로 선택된다이와 같은 특성으로 팝업 메뉴창이 전체 화면으로 생성되는 문제를 가진다이 것은 이미 오래 전부터 알려진 문제로서 eglfs의 특성상 ComboBox 및 기타 대화상자가 사용되는 위젯의 사용이 불가능 한 것으로 알려져 있음.

 

아래 링크에서 참조 및 인용:

http://doc.qt.io/qt-5/embedded-linux.html

https://wiki.qt.io/Qt_Platform_Abstraction

https://wiki.qt.io/DirectFBAndQt

http://doc.qt.io/qt-5/qpa.html