tags:

views:

3481

answers:

2

Hello,

Compiling on Fedora 10.

I have just started my first qt GUI application. I used all the default settings.

Its just a simple form. It builds OK without any errors. But when I try and run the application. I get the following message:

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

Thanks for any advice,

+2  A: 

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.
    
Kent Fredric
Just a quick follow-up. What does this do: export DISPLAY=:0.0 and why did my application fail because of it? Thanks,
robUK
your display interface runs a server-client model. DISPLAY tells applications where thier screen is, usually IP:DISPLAY.SCREEN format, but without IP it uses localhost. But given the right conditions, you can 'throw' and app at any network accessible display.
Kent Fredric
A: 

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.

dicroce