Search code examples
linuxqtserverqpainter

Using QPainter in non-GUI environment


Using QPainter in a non-GUI environment may be useful f.e. to generate PDF's on (web)servers.

However QPainter depends on QGuiApplication, which results in a runtime error:

qt.qpa.screen: QXcbConnection: Could not connect to display Could not connect to any X display.

How could I use QPainter in a non-GUI environment (no output screen is available)?


Solution

  • You should start your application with the following command line argument: -platform minimal:

    minimal is provided as an examples for developers who want to write their own platform plugins. However, you can use the plugin to run GUI applications in environments without a GUI, such as servers.

    Note that -platform offscreen seems to be required to support fonts, i.e. painting text, otherwise black squares are shown instead of the actual text.

    Further reading & references