On 05/08/17 22:28, Robin Burchell wrote:
On Sat, Aug 5, 2017, at 11:41 AM, Paul Smedley wrote:
Thanks for the reply. Any hints on the minimal files necessary for gui
apps to work. At this stage, I'm not fussed about clipboard, drag and
drop, etc, just the bare minimal to get gui apps working.
So the basic idea you've probably already gathered is that each platform
needs to implement a "QPA" plugin:
https://wiki.qt.io/Getting_Started_With_Lighthouse covers some of the
basics here, but in a little more detail:
A QPA plugin provides the glue for things like windowing and input
between Qt and a native windowing system. To start with, take a look at
the 'minimal' QPA plugin (which just does software rendering, AFAIR
directed to image files on disk), and look at how to fill in things from
there -- the starting points you'll want are a QPlatformIntegration,
QPlatformWindow, and QPlatformBackingStore. You want to look at
QWindowSystemInterface to deliver events (like expose events saying
"please start/stop rendering the window", and input events) from your
QPA plugin to QtGui.
What you want past there is a bit more fuzzy and depends both on how
complete you want your integration to be and what your platform
provides, e.g. QPlatformClipboard and stuff like that, but I'd put most
of that stuff in the "optional extras" basket.
As you've already figured out, the structure and code involved is quite
different, so I doubt it'll be a 1:1 port - but the existing plugins
provide pretty good guidance on how to lay things out, and your existing
code would be adaptable without too much work I think.
Thanks - this is the kind of this I was looking for. Appreciate the tips!
Development mailing list