Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# Running Qt/Embedded applications

A Qt/Embedded application requires a master application to be running or to be a master application itself. The master application is primarily responsible for managing top-level window regions, and pointer and keyboard input.

Any Qt/Embedded application can be a master application by constructing the QApplication object with the QApplication::GuiServer type, or by being run with the -qws command line option.

This document assumes you have the Linux framebuffer configured correctly and no master process is running. If you do not have a working Linux framebuffer you can use the Qt/Embedded virtual framebuffer, or you can run Qt/Embedded as a VNC server.

Change to a Linux console and select an example to run, e.g. `examples/widgets`. Make sure $QTDIR is set to the directory where you installed Qt/Embedded and add the $QTDIR/lib directory to $LD_LIBRARY_PATH, e.g.:

    export QTDIR=$HOME/qt-VERSION
    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

Run the application with the -qws option:

    cd $QTDIR/examples/widgets
    ./widgets -qws

You should see the `widgets` example appear. If your mouse doesn't work correctly you must specify the type of mouse to use. You can exit the master application at any time using Ctrl+Alt+Backspace.

If you wish to run additional applications you should run them as clients i.e. without the -qws option.

## Displays

Qt/Embedded allows multiple displays to be used simultaneously by running multiple Qt/Embedded master processes. This is achieved using the -display command line parameter or the $QWS_DISPLAY environment variable.

The -display parameter's syntax is:

        [gfx driver][:driver specific options][:display number]

For example, if you want to use the mach64 driver on fb1 as display 2:

        $ ./launcher -display Mach64:/dev/fb1:2

To try this functionality you can do the following:

1. Change to VC 1 (virtual console one) and run the launcher:

           $ cd examples/launcher
           $ ./launcher

2. Switch to VC 2 and run another one:

           $ cd examples/launcher
           $ ./launcher -display :1

   Another launcher will be started. Start an application in this launcher.

3. Press Ctrl+Alt+F1 - back to display 0. You can also start additional applications on a particular display by specifying the display id. Change to VC 3:

           $ cd examples/widgets
           $ ./widgets -display :1

   will display the widgets example on dislpay :1 (VC 2).

Only the master process needs to specify the driver/device part explicitly. The clients get the information they need from the master when they connect. So once you have a master server running using a particular driver, you can just use "client -display :n" to use display n.

## Mouse Input

Qt/Embedded supports MouseMan (default), Microsoft, IntelliMouse and some other devices specific to certain hardware (e.g. Vr touch panel). To specify the mouse to use set the `$QWS_MOUSE_PROTO` environment variable, e.g.:

    export QWS_MOUSE_PROTO=IntelliMouse

See also Qt/Embedded Pointer Handling.