PDA

View Full Version : Is Qt for GUI only?



"BumbleBee"
29th January 2011, 07:07
Hi guys,I am a new Qt user.I have some C++ experience and decided to start making GUI(after console app.)
So,my question is:Is Qt only for GUI development,or it can be used to code the "engine"(functionality)of my program as well?

Thank you.

Lykurg
29th January 2011, 07:22
It is not only for programming a GUI. QtCore, QtXml, QtSql etc. all doesn't belong to GUI. So Qt is also quite perfect to code an engine. Just go ahead an you'll see.

"BumbleBee"
29th January 2011, 07:24
It is not only for programming a GUI. QtCore, QtXml, QtSql etc. all doesn't belong to GUI. So Qt is also quite perfect to code an engine. Just go ahead an you'll see.

Aha..but can I also add code(for the engine)in my main.cpp file?
And can you please recommend a good tutorial/book that expalines Qt well?

Thanks.

Lykurg
29th January 2011, 08:12
Aha..but can I also add code(for the engine)in my main.cpp file?I am sorry, but I don't get you. What do you want to do?

And can you please recommend a good tutorial/book that expalines Qt well?
There are a lot of thread about that at the forum. But also my favorite one of Johan Thelin is mainly focused on GUI creation. So better say what kind of library you are planing and we probably point you to the important classes you will need to know. Also the documentation is good enough to learn.

"BumbleBee"
29th January 2011, 08:17
Well,when you are coding in a console app. you have the main function,where everything happens,I asked if the file main.cpp hold ass well the code for the engine(like commends besides the GUI..:/)

And I don't have in mind anything specific right now,I just want to learn using Qt as a normal language....so that I can create any project I like.

wysota
29th January 2011, 12:13
Qt is not a language. Qt apps are usually written in C++ so everything that applies to any C++ application applies to Qt applications too.

"BumbleBee"
29th January 2011, 12:39
Ok,so as I understand I can code(functionality) in Qt...so any good books to get me started?

squidge
29th January 2011, 12:50
Have you completed the address book tutorial ?

The documentation is also very good if you don't understand something.

If you can't find something in the documentation (or don't understand it) then you are welcome to post here.

There is also a thread on this forum about books, should you prefer to learn that way.

"BumbleBee"
29th January 2011, 12:56
Have you completed the address book tutorial ?

The documentation is also very good if you don't understand something.

If you can't find something in the documentation (or don't understand it) then you are welcome to post here.

There is also a thread on this forum about books, should you prefer to learn that way.

Sorry,what is the adressbook?

tbscope
29th January 2011, 15:43
Sorry,what is the adressbook?

http://doc.qt.nokia.com/4.7/tutorials-addressbook.html

"BumbleBee"
29th January 2011, 16:30
Thank you...
How much does it usually take to learn Qt and create applications alone?

tbscope
29th January 2011, 16:34
Thank you...
How much does it usually take to learn Qt and create applications alone?

Time to learn or time to write?
Anyway, that's very subjective. It depends from person to person. Some people learn fast or write fast, others require more time and practice.

What do you already know about computer programming? Do you know any languages? Techniques? ...

"BumbleBee"
29th January 2011, 17:34
Time to learn or time to write?
Anyway, that's very subjective. It depends from person to person. Some people learn fast or write fast, others require more time and practice.

What do you already know about computer programming? Do you know any languages? Techniques? ...

Yes,I have been learning C++ for 2 months(approximately) now,and I have learned everything basic to some advanced stuff(loops,ifs,typedef,structures,classes,inherit ance,polymorphism,pointers,functions....).

To make you understand better I have completed this (http://www.youtube.com/antirtfm#p/c/1D10C030FDCE7CE0),I was reading MSDN'S C++ Beginner Guide parallel with C++ in 21 days,and also read the tutorial at http://www.learncpp.com/

I have made small projects like TicTacToe game(OOP),a letter counter(from a file,with ifstream....)

Well,nearly all these...would it be difficult for me to get used to Qt?
BTW:I downloaded today C++ GUI Programming with Qt 4 (2nd Edition).

Zlatomir
29th January 2011, 18:19
...Yes,I have been learning C++ for 2 months(approximately) now,and I have learned everything basic to some advanced stuff(loops,ifs,typedef,structures,classes,inherit ance,polymorphism,pointers,functions....)...
I really don't want to disappoint you, but those are only basic stuff.
Anyway, if you learned and understood OOP topics, you should understand Qt framework pretty fast.

But don't hurry, always remember that understanding is the key to programming, so don't limit yourself to just tutorials (since tutorial usually don't offer that many explanations): read books, articles, documentation, forums (i have learned a lot about C++ and Qt from forums) etc... and always try to understand the things you read.

Also it may take longer to get familiar with the "GUI stuff" (since you have done only console applications, i was is the same situation, only standard C++(and STL) for one year, and then Qt as the first GUI framework)
This link (http://doc.qt.nokia.com/4.7/qt-basic-concepts.html) can help with other links to concepts used in Qt framework, if you didn't understood some topic in a book you can browse there for some more information.

Here (http://www.qtcentre.org/threads/37608-Best-Qt4-Books-in-2011?p=173029&highlight=#post173029) you can find my opinion about Foundations of Qt development by Johan Thelin (read the whole topic since you have more books recommendations there)

And don't forgot about memory management, it's a very important C++ topic so it's also very important Qt topic, even if Qt has some mechanisms that help you with that, you still need understand memory management.

Happy learning ;)

schnitzel
29th January 2011, 18:59
Good for you to decide on Qt. From all the different IDE (Integrated Development Environments) that I have sampled over the years, I believe Qt has one of the slickest (Qt Creator).

There are many reasons why Qt is a great choice for learning C++ (and other programming languages (http://qt.nokia.com/products/programming-language-support)). Not only does Qt feature a powerful IDE but if you use diligence (use Qt classes that hide OS specifics), your code will run on different OS's just by recompiling (Cross Platform).

The built-in GUI designer is top notch in my opinion, and the help system is extensive and features many good examples.

Please spend some time understanding the Signal/Slot mechanism and the Model/View architecture and you will be well on your way.

Developers nowadays are fortunate to have such a powerful and free tool at their disposal.

(This isn't paid advertising - I just wanted to express my gratitude to Nokia and the trolls :D )

"BumbleBee"
29th January 2011, 19:20
I really don't want to disappoint you, but those are only basic stuff.
Anyway, if you learned and understood OOP topics, you should understand Qt framework pretty fast.

But don't hurry, always remember that understanding is the key to programming, so don't limit yourself to just tutorials (since tutorial usually don't offer that many explanations): read books, articles, documentation, forums (i have learned a lot about C++ and Qt from forums) etc... and always try to understand the things you read.

Also it may take longer to get familiar with the "GUI stuff" (since you have done only console applications, i was is the same situation, only standard C++(and STL) for one year, and then Qt as the first GUI framework)
This link (http://doc.qt.nokia.com/4.7/qt-basic-concepts.html) can help with other links to concepts used in Qt framework, if you didn't understood some topic in a book you can browse there for some more information.

Here (http://www.qtcentre.org/threads/37608-Best-Qt4-Books-in-2011?p=173029&highlight=#post173029) you can find my opinion about Foundations of Qt development by Johan Thelin (read the whole topic since you have more books recommendations there)

And don't forgot about memory management, it's a very important C++ topic so it's also very important Qt topic, even if Qt has some mechanisms that help you with that, you still need understand memory management.

Happy learning ;)

What else in your opinion should I learn in order to be ok with Qt...(althought from the moment I started,I don't meet any syntax difficulties,only some complexities of Qt flow.)?
And with "memory managment",you mean memory allocation?

wysota
29th January 2011, 20:07
Pointers, classes, inheritance, virtual methods, static methods, overloading and overriding, const methods, casting, basics of templates. That's the least you should know and understand to feel at least a bit comfortable using Qt. Otherwise you'll be struggling all the time.

Zlatomir
29th January 2011, 20:13
And with "memory managment",you mean memory allocation?
Not only that, also difference between stack and heap storage, deletion, life-time of objects (including the life of the pointer used for allocating object on heap), memory leaks...
And of course the things Qt framework add to help you manage this, i mean the parent-children relationship.
With Qt classes (most likely the ones for GUI) you will extensively use heap allocation and you will see that you don't need to have a delete statement for each call of new that is because the parent will delete it's children.

For other things you should know, i don't know, you will probably find a lot of them, just go along with the book/books, tutorials, documentation, articles and remember that understanding is what you are after, not just "hack" a thing that somehow magically works (or worse just looks like it works)

Whenever you don't understand something, search the documentation site, this site, and if you still have questions, just create a new topic ;)

marcvanriet
29th January 2011, 22:32
Hi,

If you want to write a GUI, and if you plan to use C++, then Qt is definitively your number 1 choice. It is free, and it is much easier to use than any other C/C++ toolkit. Just make sure to use QtCreator.

Don't let people scare you too much with the things you should know. You know the basics of OOP and C++, and you are obviously willing to learn more. So you'll be able to do quite a lot already with what you know now, and the rest you will learn along the way.

Best regards,
Marc

P.S. As mentioned before, Qt also has easy to use libraries to do any non-GUI stuff that you would like to do.
P.P.S. Borland C++ Builder is also very good, but it isn't free.

stampede
29th January 2011, 23:15
oops,ifs,typedef,structures,classes,inheritance,po lymorphism,pointers,functions....)

Just make sure to use QtCreator
I'll rather say: "Just make sure you know why to use QtCreator".
Know the tools. Learn how to use qmake, gdb, make. Learn the basics of STL. Try to make some serious use of all the stuff you've mentioned.
And don't think that "gui programming" is some kind of "higher level" of programming in general. The fact that you can do some gui don't makes you a better programmer :rolleyes:

"BumbleBee"
30th January 2011, 06:10
Thank you guys for all the replies!

wysota:The only thing I don't know is templates(never found a good tut.)
Zlatomir :Yeah,I see Qt used pointers and memory managment all the time..however I am not so good with this...:/

szisziszilvi
31st January 2011, 13:11
The fact that you can do some gui don't makes you a better programmer
yeah, first I was slighly dissappointed when I realised... :) But at least I got a little bit bigger in mum's eyes... :cool:

Michael Druckenmiller Sr
13th October 2011, 20:32
You can search for and see if you can down load:



Advanced Qt Programming Creating Great Software with C++ and Qt 4 by Mark Summerfield

I have enjoyed Mark's book on using pyQT with QT. He will leave gaps, though that you will have to dig out on your own.

But, I think most authors have a few "blind spots".



Foundations of Qt Development by Johan Thelin

Both of these were available as .pdfs

Most of all "Be Patient" both with yourself and those who try to help.

Most (but not all) of the questions I've had about using pyQT have been in Mark's book.

And, I would have saved myself a lot of grief if I'd had the time (project deadlines and all that) to actually read it through and done his examples.

This is going to take time...

There is a lot to absorb...

But, don't try to cram...

Take small bites and digest them slowly, give your brain a chance to collate the material and maake some connections...

Very few people can read something from a book and immediately turn around and apply it, properly.

Mike Sr.