43 lines
1.5 KiB
Markdown
43 lines
1.5 KiB
Markdown
|
# Qt Embedded 说明
|
|||
|
|
|||
|
## QPA
|
|||
|
|
|||
|
QPA 的全称是 Qt Platform Abstraction,即 Qt 平台抽象层。在 Qt5 中替代 QWS(Qt Window System)。QPA 插件是通过对各种 QPlatform* 类进行子类化来实现的。有几个根类,例如用于窗口系统集成的 QPlatformIntegration 和 QPlatformWindow,以及用于更深入的平台主题和集成的 QPlatformTheme。QStyle 不是 QPA 的一部分。QPA 类没有源代码或二进制兼容性保证,这意味着平台插件只能保证与它开发的Qt版本一起使用。
|
|||
|
|
|||
|
在 Qt4 在编译时需要引入平台相关代码,其可移植性差,Qt5 通过引入 QPA 来剥离平台相关代码,提高跨平台特性。
|
|||
|
|
|||
|
## Qt 应用程序的 QPA 参数/宏
|
|||
|
|
|||
|
优先使用环境变量中的宏定义,如 QT_QPA_PLATFORM,其次使用程序运行时指定的参数。
|
|||
|
|
|||
|
指定 mouse、touch、keyboard(需要加载 hid、hid-generic、usbhid 驱动):
|
|||
|
|
|||
|
```bash
|
|||
|
<qt program> -platform linuxfb:fb=/dev/fb0 -plugin evdevmouse:/dev/input/event<X> -plugin evdevtouch:/dev/input/event<Y> -plugin evdevkeyboard:/dev/input/event<Z>
|
|||
|
```
|
|||
|
|
|||
|
### 常用宏
|
|||
|
|
|||
|
```bash
|
|||
|
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/qt/plugins
|
|||
|
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
|
|||
|
export QT_QPA_FONTDIR=/usr/share/fonts
|
|||
|
```
|
|||
|
|
|||
|
### QPA Platform
|
|||
|
|
|||
|
主要见 plugin/platforms 文件夹下有哪些插件,如:
|
|||
|
|
|||
|
- linuxfb
|
|||
|
- directfb
|
|||
|
- weston
|
|||
|
|
|||
|
### QPA Evdev Plugin
|
|||
|
|
|||
|
主要见 plugin/generic 文件夹下的 libqevdev* 插件,如:
|
|||
|
|
|||
|
- evdevkeyboard
|
|||
|
- evdevmouse
|
|||
|
- evdevtablet
|
|||
|
- evdevtouch
|