I very new to programming currently in the process of learning C++ but I'm thinking of switching to Python because I feel I need to learn the basics first. Anyway I was always wondering how "dynamic" GUI's are made. Programs like iTunes,Firefox,MovieMaker,iMovie ect. Is it anything like web designing where you can design the GUI in Photoshop and use another program to map out the functions of each button like DreamWeaver does? Or does it all have to be done in toolkits like Qt or Visual. This is just something I have always been wondering but could never find the answer to.

Thanks