Hi everybody,
I am learning c++ and i want to develop GUI applications
Is Directx efficient for GUI apps ? Not games, just gui software.

Is Directx efficient for GUI apps ?

The short answer is no. DirectX is vastly overpowered (and consequently excessively low-level) if you just want to knock together GUI apps.

The common approach is to pick a suitable widget toolkit for your needs and system, and use that. Here's a list:


I would say, you should use WxWidgets. If you need a lot of graphics use SDL.

What operating system?
Do you have an idea of the type of app you'd like to create?

@thines01 I would like to create cross-platform apps for different types of connection (TCP,UDP,HTTP...)and stuff like that.
Thanks again

Then you should definitely give a shot to Qt. It easy to work with, and quite well documented. You can create applications with the use of QTcpSocket, and QUdpSocket. - I did.

There are many examples out there, however learning can be tricky some times. - Well, I had trouble when I started learning it. The problem is, the examples only take you for a few steps, sometimes further, but there is really not much explanation in there, and later when things get really complicated, you don't know where or whom to turn to. On the forums sometimes they just refer to an example and that's it. You have to figure it out yourself from there. The documentation is good, but you will not gain complete understanding how a class really works from there. It just gives you an idea how to use it, and what it does.

An advice: If you are planning to work with Qt, install the Qt Assistant it is the documentation of the Qt framework. You can find examples in it, and information about the classes, their parent class, inherited members, functions, signals, slots etc you name it.

The Qt Creator is a great IDE, but try not to rely only on the graphical interface. Your classes, objects and methods many times will be invisible to the Qt interface, and you have to figure out, how to connect them without the use of the interface. The drag and drop/point and click method only works, for a brief period.

One more thing, you have to be good at C++ in order to program in Qt, you must have a good understanding how classes, inheritance, and objects work and how they relate to each other. Because sometimes you might look at your classes in your project, and you may think they belong together, they are not! They are completely separated, and independent from each other. You have to know how to connect them, and how to pass valuable information to one object to another. So understanding how slots and signals and inheritance work is essential.

Well, at least this is what I've learned from my brief experience with Qt.

Thanks LRRR,
Is it possible to use my IDE with Qt ?
I can't find Qt download !
Can you give me a link please ??

@Karlwakim You can, but honestly I've never tried it. I use Linux most of the time, and the default IDE Qt is shipped with was perfect for me. Qt can be integrated though, the supported IDEs are : Microsoft Visual Studio 2005 and 2008 and Eclipse.


You can download the Qt SDK from here: http://qt.nokia.com/products
On Linux just use the repository.

One thing, if you choose to install it, don't just jump on the next button, select 'custom' install and pick what you really need, otherwise you will end up installing tons of things you don't want. One more thing, in the Windows version of the Qt installer you cannot choose any installation path which contains spaces like C:\Program Files\Qt\. I had to install it on C:\Qt on my sister's laptop. Not a big deal, but a bit annoying.