Подтвердить что ты не робот

Не удается подключиться к X-серверу: 0.0 с приложением Qt

Компиляция на Fedora 10.

Я только что начал свое первое приложение GUI qt. Я использовал все настройки по умолчанию.

Его простая форма. Он строит ОК без каких-либо ошибок. Но когда я пытаюсь запустить приложение. Я получаю следующее сообщение:

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

Спасибо за любой совет,

4b9b3361

Ответ 1

Общие причины этого следующие:

  • DISPLAY не установлен в среде.
    Решение:

    export DISPLAY=:0.0
    ./myQtCmdHere
    

    (Этот, по-видимому, не тот, кто ошибается, поскольку его высказывание, в котором X отображает его попытку подключения, также не всегда 0.0, но большую часть времени оно есть)

  • Неавторизованный пользователь пытается запустить приложение X
    Решение (как владелец X, то есть: самостоятельно)

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

Ответ 2

Кроме того, если вы хотите, чтобы ваш X-сервер мог получать соединение через TCP, в наши дни вы должны почти всегда явно включать это. Чтобы проверить, разрешено ли сервером удаленные TCP-соединения, выполните следующие действия:

telnet 127.0.0.1 6000

Если telnet подключается, ваш X-сервер слушает. Если он не может, то ни одно удаленное приложение X не потребуется, и вам нужно включить удаленные TCP-соединения на вашем сервере.

Ответ 3

Добавление к приведенным выше ответам. Я был в аналогичной ситуации во время выполнения тестов для Code2Pdf в travis. Я решил проблему, используя xvfb-run. Цитата из manpage,

xvfb-run - это оболочка для команды Xvfb (1x), которая упрощает задачу запуска команд (обычно X-клиента или script, содержащего список клиентов, которые будут запущены) в среде виртуального X-сервера.

script, который я написал, был:

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.

Запуск выше script помог мне. Вы можете увидеть неудачную сборку и передать сборку.

Надеюсь, что это поможет