Ringo
Ringo

Reputation: 21

Newbie to Qt4 embedded Linux - Application management, deployment and general architecture?

First off, I apologise hugely for asking such basic questions. I am in the process of deciding if I should use Qt on an embedded linux device (first attempt will be on a TI OMAP EVM) for developing a UI and also for managing applications that run on the device (and also adding removing applications during run time by over the air (WiFi) software downloads).

I have been reading the Nokia Qt reference documentation and feel like I have missed a basic step in my understanding.

If I may just clarify what i mean by an application (I am not sure the Qt documentation I have read aligns with this): An application is a program that runs on a device and uses the services of that device. So I figure I can use Qt as an application framework, and invoke (or launch) Qt applications from it. Applications examples are: email client, mapping, notebook etc. I would envisage one main window which has a list of the applications available (maybe icons like android etc) and then the applications are launched from this main window. If events come in from the system, then the application framework will route the events appropriately, and its possible that this will cause another application to use the full screen.

I'm struggling (as a complete newbie) to understand if this means i have to run an application and then run applications from that, or if there is some inbuilt mechanism in the Qt architecture to do this type of application launching.

So instead of asking a question directly about how to do that, i obviously need to start off from the basics. I’ve read about the QWSServer and QWSClient architecture and that makes sense in a vague way. However, I can't find information on how to:

I'm guessing I have missed a blindingly obvious top level document that explains this sort of basic functionality. It may be that I should invest the time in downloading the SDK and actually try using Qt (apologies again, I don't get much time to do proper work nowadays :( )

So, if anyone could point me in the direction of the relevant documents, it would be very much appreciated!

Upvotes: 2

Views: 679

Answers (2)

Caleb Huitt - cjhuitt
Caleb Huitt - cjhuitt

Reputation: 14941

QWS is a windowing system specifically designed to support Qt applications in embedded situations, in which there may be no other window manager (or acceptably lightweight one). It does a bit less than the heavyweight ones such as KDE or gnome, but handles things along the same lines. One of the aspects about it, however, is you can develop your own plugin to draw the window frames, title bars, etc., in order to style them the way you want to.

In reference to QWS, you asked about:

  • launch applications or manage them. (Who launches/suspends an application?)

The operating system launches and suspends applications. The QWS is a windowing system, not an operating system. In the cases I know about, it runs on top of linux variants. Your envisioned main window would probably best be developed as its own application that launches other applications in some manner.

  • Deployment models of applications (Are they in the same Linux process or thread as the QWSServer?)

They are generally in other processes than the window server. Depending on how you launch them, of course, they may be in the same process or a different process as your launchpad application. Beware a potential problem of running it in the same process: you can only have one QApplication instance in a given process.

  • How to add a application at run time?

I would assume your launchpad would provide a mechanism for adding an application, which would put it in the appropriate place on disk. You could use this to do any number of things to alter the list of applications to launch. One example would be to just update your GUI based on a blessed directory. Another option might be to have a separate plugin bundled with the applications, and your launchpad application loads those plugins to get information about the applications. Really, the possibilities are almost endless here, assuming you provide the entry point to install the applications on the system.

Upvotes: 0

Martin Beckett
Martin Beckett

Reputation: 96119

Qt is a windowing toolkit - not a window manager.

There are a few Qt window manager projects for small devices and of course the whole of KDE is written in Qt.

Qt/Embedded is really just Qt down to the hardware - rather than relying on the operating system or X windows to do the drawing. I think you might be confusing Qt with one of the Nokia mobile operating systems that use Qt for their gui.

Upvotes: 1

Related Questions