|  | Home · Examples

# The VNC Protocol and Qt for Embedded Linux

VNC (Virtual Network Computing) software makes it possible to view and interact with one computer (the "server") from any other computer or mobile device (the "viewer") anywhere on a network.

To run a Qt for Embedded Linux application using the VNC protocol, the Qt for Embedded Linux library must be configured and compiled with the `-qt-gfx-vnc` option:

    cd path/to/QtEmbedded
    ./configure -qt-gfx-vnc
    make

Then start a server application (i.e. construct a QApplication object with the QApplication::GuiServer flag or use the -qws command line parameter. See the running applications documentation for details). When runnng the application, use the `-display` option to specify the VNC server's driver. For example:

    cd path/to/QtEmbedded/examples/widgets/analogclock
    ./analogclock -qws -display VNC:0

To interact with the application over the network, run a VNC client pointing to the machine that is running the server application. VNC clients are available for a vast array of display systems: X11, Windows, Amiga, DOS, VMS, and dozens of others. For example, using the X11 VNC client to view the application from the same machine:

    vncviewer localhost:0

Qt for Embedded Linux will create a 640 by 480 pixel display by default. Alternatively, the QWS_SIZE environment variable can be used to set another size, e.g. `QWS_SIZE=240x320`.

The Virtual Framebuffer The virtual framebuffer is an alternative technique recommended for development and debugging purposes. The virtual framebuffer emulates a framebuffer using a shared memory region and the `qvfb` tool to display the framebuffer in a window. Its use of shared memory makes the virtual framebuffer much faster and smoother than using the VNC protocol, but it does not operate over a network. |