So i know about Qt and win32 API but I'm wondering how professionals make their GUI? I doubt that they go through Qt.
Do they make their own library or..? iTunes for example.
Where can i get more information about this.
Actually, a lot of professional applications are made with preexisting toolkits. If you spend some time on Google, you'll find a lot of companies that have used wxWidgets, Qt, etc.
I'm guessing you're curious because you want to learn the best toolkit to learn. There is only one answer. Preference.
I personally suggest wxWidgets over Qt since Qt doesn't feel natural to me. On the other hand, someone might suggest just learned Windows API. A lot of big companies don't have the time, money, man power to write their own toolkit for one project since it takes a long time.
In regards to iTunes, I highly doubt they used Windows API since it's an Apple program ported to windows. More than likely, they used a toolkit that made it simple to port, otherwise we probably wouldn't even have iTunes on PCs.
Any toolkit is nothing more than just a bunch of function calls. Let's say you wanted to make a toolkit for Windows API, you would need to know how Windows API behaved, what parameters it needed and make your toolkit around that based upon what things are relevant to you. Remember, Windows API is massive and, as such, most of it isn't relevant to making a toolkit. You pick and choose what you want in it and you can slowly expand upon it.
Some of the larger toolkits have been in the making for several years, if not a decade or more. You can start using a toolkit that's already out there or by making your own. But with a limited knowledge on C++ itself, I highly recommend against it. The WinAPI is complicated, at best. I can't stand to even look at it, let alone try to piece it together to make a program, then to try and figure out how to make a toolkit that's user friendly, good luck.
If you're dead set on making GUI applications, I suggest starting with wxWidgets and an IDE that has built in support like wxDev-C++ or Code::Blocks. Code::Blocks even comes with wxSmith which is a WYSIWYG GUI builder and has a nice tutorial online as well so you can get to work making very simple applications without much knowledge. The real challenge will come from your own designs and making it work with the GUI. That's not to say that wxWidgets is hard to use, just picking and choosing exactly what you want can be a little difficult.
I have looked at windows API and it is like 70 lines just to make a simple window! I have also had a look at Qt and it looks a lot more manageable and learnable. I hadn't actually heard of wxWidgets until you mentioned it. I like the idea of being able to use it with code::blocks as it is my program of choice.
Code::Blocks is easy to set up with wxWidgets and in turn, wxSmith. I just recently heard of this, but there is a .exe version called wxPack that installs wxWidgets onto your computer to be used. I haven't installed it yet so I'm unsure of how well it works, but it might be worth a shot. I also believe that wxWidgets' website has a .exe, but I've always compiled from source and installed with shell so I'm not positive. Once it's properly set up, it's easy to make simple applications and the amount of stuff available is almost mind blowing.
If you've ever used any other WYSIWYG GUI creators, like Visual C++, it will only take a little while to get accustomed to wxSmith. I do need to get back to working with wxSmith though, it's been several months due to work being busy and the lack of a drive to work on my program.
The main advantage with Qt is that you can have one code base and compile for multiple platforms - various Linux, Windows, MAC, Android.
Qt can be used in conjunction with all kinds of other technologies, such sfml, OpenGL (+ other graphics stuff), SQL, html scripting, plus many others. There are hundreds of code examples.
There might be other systems that do this too, I have only used Qt so I have no idea of which might be better. I picked Qt because it seemed to have lots of functionality, but others could be good too.
wxWidgets has all of the same advantages as Qt, but isn't designed by Nokia, Qt is. I personally chose wxWidgets over Qt due to the syntax. It looked nicer and felt like C++, where as Qt really looks nothing like C++, to me anyways. I even tried to jump into Qt and I just had one heck of a time.
And going back to iTunes, it's quite possible that Apple designed their own toolkit due to the fact that they make a lot of applications for Macs. They could have hired someone, or paid the people already working with the toolkit, to make a port for windows. But Apple hates Microsoft so there won't be many things that will come to PCs.