summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/README
blob: b44d04f58c1f1dd10334c710fc1a268ca694ab64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
The Qt Platform Abstraction - QPA

QPA is the platform abstraction layer for Qt 5 and replaces QWS and the
platform ports from Qt 4.

There is currently little documentation for QPA. The best approach for
developing a new platform plugin is to look at the other plugins and
see how they implement the APIs in question. The "minimal" plugin
is a good starting point. The xcb, windows, cocoa, and qnx plugins
are also actively developed and up to date.

QPA plugins are implemented by subclassing various QPlatform*
classes. There are two "root" classes: QPlatformIntegration for
window system integration and QPlatformTheme for deeper platform
theming and integration. QStyle is not a part of QPA.

The APIs provided by QPlatformIntegration are at this point (5.0 Alpha)
mostly stable. QPlatformTheme still has ongoing development. There
are no source or binary compatibility guarantees for the QPA classes,
meaning that a platform plugin is only guaranteed to work with the Qt
version it was developed against. API changes will however only be
made in minor releases. (5.1, 5.2, and so on.)

Class Overview:

QPlatformIntegration
    QPlatformWindow
    QPlatformBackingStore
    QPlatformOpenGLContext
    QPlatformSharedGraphicsCache
    QPlatformFontDatabase
    QPlatformClipboard
    QPlatformDrag
    QAbstractEventDispatcher
    QPlatformInputContext
    QPlatformAccessibility
    QPlatformNativeInterface
    QPlatformServices

QPlatformTheme
    QPlatformMenu
    QPlatformMenuBar
    QPlatformDialogHelper
    platform palettes
    platform fonts
    theme hints

src/platformsupport contains several helper classes for implementing
platform plugins on unix-like systems.