QT or MFC which is better to learn

13,272

Solution 1

I can't give you opinions here. To gain experience, start programming in whichever framework fulfills your requirements.

Qt is good enough, and there is wxWidgets as an option. These two are cross platform unlike MFC.

As for choosing between game programming or GUI programming, you can do both, one after another.

Hope this helps!

Solution 2

On the first part of the question: I suggest you try some lightweight programming in both directions.

Now on the part of what framework to use. If you truly decide on game coding only you would probably need to go with specialized framework/engine for game development. Still, Qt will let you do some game development so you can try it for game and standalone programing before you make up your mind.

Regarding the frameworks you suggested. MFC is not popular as before and probably will not be much supported by microsoft in the future. Qt and wxWidgets are popular frameworks that will allow you to do cross platform apps. I recommend Qt because it makes coding much easier, wxWidgets becomes more useful if you are really interested in making native apps for the major platforms.

Solution 3

There are a variety, with different benefits and limitations. MFC is pretty much just Windows, whereas QT is cross platform, and (IMO) much more in demand in the current job market (which until recently I was searching very tenaciously!) Another popular option might be WPF, which is Windows specifc.

Short answer: do QT until 'the next big thing (tm)' comes along.

Solution 4

MFC is windows and if you are mainly targetting windows, WPF is the new Micorsoft desktop GUI standard. Having said this, most games do everything in a 3D API-native (OpenGL/Direct3D) manner, and the main platform-specific parts is the windowing and user input.

There also comes a tradeoff between using an existing User Interface library compared to rolling your own. You will find it quite hard to deeply integrate Qt or WPF widgets into your game as first class citizens, and may need to jump through some hoops to do certain custom behaviours. Doing it manually from scratch comes with the benefit of really learning what is going on and being able to do exactly what you want to do; but the cost of this is you arent leveraging an existing complete library.

My personal advice is to take some time to learn either Qt or WPF (Qt if you care about multiplatform, a lot of projects use Qt, but WPF is pickup up momentum, especially due to Windows 8) just to get an idea of what a UI API looks like from the client side. Also learn the basics of a graphics API (OpenGL or Direct3D). Then you will be in a much better position to make your decision. Ultimately I would recommend creating a non-game UI program, and a seperate game program. This will give you a much better idea.

In the context of a game, you can leverage Qt/WPF/etc in the area of tools and editors. But generally realtime in-game UIs use a tightly integrated 3D accelerated UI library. One such library is Scaleform (commercial, flash-based), and another is CEGUI (LGPL/MIT).

Share:
13,272
ranganath111
Author by

ranganath111

I need & share C++ Now Java also please

Updated on June 06, 2022

Comments

  • ranganath111
    ranganath111 almost 2 years

    I want to have working experience in c++ application programming. I am in dilemma to choose game programming or standalone programming. please suggest me which framework/API is beneficial for me to learn.

    Qt mobile / QT gui programming , any other APIs , what about learning MFC instead of QT, are there any other gui framework than qt

  • ranganath111
    ranganath111 over 11 years
    thanks alot for your suggetions preet, To get experience , I will start to learn QT.
  • ranganath111
    ranganath111 over 11 years
    Generally, what would be preferred much in between gaming programming, stand alone gui programming ?
  • ranganath111
    ranganath111 over 11 years
    Thanks alot.. Generally, what would be preferred much in between gaming programming, stand alone gui programming ?
  • Marcus Frenkel
    Marcus Frenkel over 11 years
    I would go with Qt as recommended for stand alone programming, and as additional plus you can still use it for game development. I cannot really recommend game development framework, you better ask that as a new question to receive some more appropriate answers.
  • ranganath111
    ranganath111 over 11 years
    thanks alot for your valuable suggestion