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

在Fedora 10上编译

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

它只是一个简单的forms。 它生成没有任何错误。 但是,当我尝试运行应用程序。 我收到以下消息:

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

感谢您的任何build议,

一般的原因如下:

  1. DISPLAY未在环境中设置。
    解答

     export DISPLAY=:0.0 ./myQtCmdHere 

    (虽然这个问题似乎并不是一个错误,正如X所显示的那样,它并不总是0.0,但大多数情况下是这样)

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

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

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

telnet 127.0.0.1 6000

如果telnet能够连接,那么你的X服务器正在监听。 如果它不能,那么远程X应用程序也不会,并且您需要在服务器上启用远程TCP连接。

添加到上面的答案。 在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代码风格。 我是一个noob bash程序员。

运行上面的脚本帮助了我。 你可以看到失败的构建和传递构建 。

希望能帮助到你