This is my first post, so don't hesitate to point out dos and don'ts of the forum to me.
Hi,
Its been a couple of months since I started C++ (I had prior experience in other language such as Python, Verilog and VHDL) and I am looking into creating graphical user interfaces. While I did the research and tried to inform myself, I am still uncertain about where to start and how to do such a thing. I fooled around with Windows forms, but would like to know what would be the optimal way to proceed in such an endeavor. Any tips, resources or information you might possess concerning this subject would be good.
There exist some C++ libraries and IDEs with GUI development in mind, such as wxWidgets (which has python bindings) and QT - however, you may find them to be too heavyweight.
There is the WINAPI, which of course is more C than C++. It's fun if you can get this working, but I've found I would end up spending more time creating wrapper classes than actually making any pretty GUIs. I'm still messing around with this myself.
Then there's OpenGL - you could roll with your own sort of thing from the ground up, but even that will require either some WINAPI knowledge to properly initialize the OpenGL context, or a third-party library or toolkit to do it for you. In addition, most OpenGL tutorials on the web teach deprecated OpenGL.
I suppose it comes down to personal preference. I've always been told not to reinvent the wheel, but I just can't come to terms with the stuff that's already out there. Maybe QT and friends is what you've been looking for.
I see. Thanks for the information. This might a bit much to ask, but have you ever heard of or tinkered with Windows Forms or Visual Studio? Also, it there a WYSIWYG type of software or tool that would let me add the GUI modules (buttons, labels, etc.) visually than allow me to work on the functions as I would without having to bother with formatting?
Visual Studio has some C# and visual basic project templates, where you can enter a sort of "WYSIWYG" mode like you're describing, not for C++, however - that's all I really know, hope it's useful.