无法连接到X服务器:0.0与Qt应用程序

时间:2009-03-14 23:32:40

标签: linux qt x11

在Fedora 10上进行编译。

我刚刚开始了我的第一个qt GUI应用程序。我使用了所有默认设置。

它只是一个简单的形式。它构建正常,没有任何错误。但是当我尝试运行应用程序时。我收到以下消息:

Starting /home/rob/projects/qt/test1/test1/test1...
No protocol specified
test1: cannot connect to X server :0.0

感谢您的任何建议,

3 个答案:

答案 0 :(得分:40)

一般原因如下:

  1. DISPLAY未设置在环境中 解决方案

    export DISPLAY=:0.0
    ./myQtCmdHere
    

    (这个似乎不是那个有问题的,因为它说X显示它试图连接到它。而且,它不总是0.0,但大部分时间都是)

    < / LI>
  2. 非授权用户试图运行X应用程序
    解决方案(作为X拥有用户,即:您自己)

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

答案 1 :(得分:5)

此外,如果您希望您的X服务器能够通过TCP接收连接,那么现在您几乎总是必须明确启用它。要测试您的服务器是否允许远程TCP连接,请尝试:

telnet 127.0.0.1 6000

如果telnet能够连接,那么您的X服务器正在侦听。如果不能,则任何远程X应用程序都不会在您的服务器上启用远程TCP连接。

答案 2 :(得分:2)

添加以上答案。 在travis上运行Code2Pdf的测试时我遇到了类似的情况。 我使用xvfb-run解决了这个问题。从联机帮助页引用,

  

xvfb-run是Xvfb(1x)命令的包装器,它简化了在虚拟X服务器环境中运行命令(通常是X客户端或包含要运行的客户端列表的脚本)的任务。

我写的脚本是:

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_xvfb
export DISPLAY=localhost:1.0
xvfb-run -a bash .misc/tests.sh
# .misc/tests.sh is script that runs unit tests. You can replace it with something suitable to you.
  

请承担我的bash代码风格。我是一名菜鸟狂欢程序员。

运行上面的脚本帮助了我。 您可以看到failing buildpassing build

希望有所帮助