--- Quote Start ---
I need to make a GUI that could communicate between pc and my De0 nano.
I could make the GUI with QT but I don't know how the communication work.
--- Quote End ---
The USB interface to the DE0-nano is a USB-Blaster.
You can communicate from the host via a couple of mechanisms;
1) SLD Virtual JTAG core, and quartus_stp Tcl procedures
2) JTAG-to-Avalon-MM master and SystemConsole
3) Direct access via FTDI drivers
If you want to communicate via a QT GUI, then you could communicate with (1) and (2) via sockets. Unfortunately SystemConsole has broken fileevent, so servers there can not deal with multiple clients (you have to block on a client socket). Unfortunately Altera do not provide Avalon-MM access functions from quartus_stp, so you'd have to reverse engineer the protocol. (3) also requires reverse engineering the protocols.
I think there is also the option of a JTAG-UART as well, and then communicating via nios2-terminal. However, since this is not a Virtual COM port, I think that solution would be a pain too.
Option (1) is currently the best documented interface for custom communications via USB ... unfortunately, that is being generous (since the documentation has errors ...)
If you are just starting out with FPGAs, then just go an buy an FTDI FT245BM module from Digikey for $20 and use that. The device appears as a Virtual COM port, and the interface logic is pretty easy to implement.
Cheers,
Dave