Cannot connect to X server :0.0 with a Qt application Cannot connect to X server :0.0 with a Qt application linux linux

Cannot connect to X server :0.0 with a Qt application


The general causes for this are as follows:

  1. DISPLAY not set in the environment.
    Solution:

    export DISPLAY=:0.0./myQtCmdHere

    ( This one doesn't appear to be the one at fault though, as its saying which X display its trying to connect to. Also, its not always 0.0, but most of the time it is )

  2. Non-Authorised User trying to run the X Application
    Solution ( as X owning user, ie: yourself )

    xhost +local:root   # where root is the local user you want to grant access to. 


Also, if you'd like your X server to be able to receive connection over TCP, these days you must almost always explicitly enable this. To test whether you're server is allowing remote TCP connections try:

telnet 127.0.0.1 6000

If telnet is able to connect, then your X server is listening. If it can't, then neither will any remote X application and you need to enable remote TCP connections on your server.


Adding to above answers. I was in a similar situation while running tests for Code2Pdf at travis.I solved the problem using xvfb-run. Quoting from the manpage,

xvfb-run is a wrapper for the Xvfb(1x) command which simplifies the task of running commands (typically an X client, or a script containing a list of clients to be run) within a virtual X server environment.

The script that I wrote was:

check_install_xvfb() { # check and install xvfb    if hash xvfb-run 2>/dev/null; then        :    else        sudo apt-get update        sudo apt-get upgrade        sudo apt-get install xvfb    fi}check_install_xvfbexport DISPLAY=localhost:1.0xvfb-run -a bash .misc/tests.sh# .misc/tests.sh is script that runs unit tests. You can replace it with something suitable to you.

Please bear with my bash code style. I am a noob bash programmer.

Running the above script helped me.You can see the failing build and passing build.

Hope it helps