I've been learning C++ for a month, and prior to that, C, just elementary C. Can I jump right in and learn Qt or should I spend more time on C++?
Right now, if you want.
I think Qt programming is not a very "native" C++ programming. The native C++ programming is based on RAII, while Qt uses tree objects model mechanism, that each QObject
should has a parent except for some root objects like the singleton of QApplication
, and by this way Qt manages objects and resources.
In the library facet, Qt discourages use of STL, so this would save you a lot of time. Qt template libraries is much easier than STL, in my opinion.
Qt doesn't use multi-inheritance very much. Generally if only you know about virtual function in C++ you won't have many problems learning Qt class hierarchy. (A little deeper maybe you would find that each class in Qt like QObject
class has a QObjectPrivate
the private class, it is about ABI compatible in C++. It is unnecessary to care that too much when you just begin.)
So, if you've gain some basic knowledge about C++ template and OOP, you could start, right now. Good luck!
I started learning Qt only 3 weeks ago. From my own experience, I would say the object oriented aspect of C++ is very important to Qt since you will find yourself subclassing widgets all the time.
I would suggest you to read more on anything related to c++ 'class' before or while you are learning Qt. I also recommend you to get hold a copy of "C++ GUI Programming with Qt 4". It is really good and can give you more understanding than you can get from the online tutorials. At least it is my feeling.
I would always recommend learning C++ before learning and using Qt. Because you already had a little experience (a little because 1 month is a little) you can slowly go for Qt.
Just make sure that you're comfortable with using C++. The more confident you are in that language, the more you can concentrate on the Qt part of your application.
Also make sure that you understood the basics of object oriented programming.
If you are confident with C++ , then you can jump for Qt. What are you trying to do with Qt ?
http://doc.qt.nokia.com/latest/tutorials.html
精彩评论