Areas of Qt, you want to learn most. What can we do for you?

Published Wednesday February 10th, 2010
14 Comments on Areas of Qt, you want to learn most. What can we do for you?
Posted in Learning

Qt Learning is a relatively new area of our activities to help new Qt users and make current ones more knowledgeable. In the summer we’ve conducted a specialized survey about learning Qt. One of the most interesting facts in the survey results was a list of areas of Qt with most learning needs. The top ten entries (sorted by popularity) look like this:

  1. ModelView (with 56% – “most needed” and 32% “average”)
  2. GraphicsView (with 53% – “most needed” and 32% “average”)
  3. Advanced Widgets techniques, incl. abstract Widget classes (with 51% – “most needed” and 33% “average”)
  4. Threading classes, incl. QtConcurrent
  5. Advanced event handling, incl. system events and timer
  6. Networking, incl. SSL
  7. Inter-Process Communication (IPC) with Qt, incl. D-Bus
  8. Qt Object model
  9. Unit testing and performance measuring
  10. Signals and Slots

Certainly, it is not a very big surprise to see most of the entries on this list. Nevertheless, detailed needs have to be explored yet. As you probably heard, we do research on NG ModelView classes. Other works are ongoing to provide better interfaces in different areas. In addition to this, our mission in Learning is to help you on ongoing basis, in your current works. As one of the steps, we’ve drafted a new “getting started tutorial” about ModelView. In addition, it aslo a reference list, where ModelView was explained in several publications about Qt.

What else should we provide to make this list shorter or even shift it to new and more exciting topics like Qt Kinetic or QML? What are the exact needs in the “old” and “new” areas of Qt?

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in Learning

14 comments

Adam says:

GraphicsView, Qt Kinetic, and ModelView are at the top of my list right now, QML coming in a close 4th. I have been using Qt for a little over a year now and the current examples seem to thoroughly cover topics 5-19. QtConcurrent might need a few more examples (possibly a map and reduce example?), but the rest are well documented.

nathan says:

I find it amusing that even with just #1 and #2, the “most needed” category already exceeds 100%. Assuming people were allowed to mark only one thing as the “most needed,” does this mean that really big respondents count as more than one person? ๐Ÿ˜‰

Andrej says:

Hehe, ModelView and GraphicsView are also on the top of my list now. Since for some project I’m working on it looks like they are a perfect match: MV used for data and GV for visualisation of that data. But I’m strugling with them trying to connect them in the best way, as currently it looks like a lot of stuff is duplicated in both of them, while i have a feeling a lot could be unified.

Fazer says:

I remember when I was learning Model/View I read the whole framework documentation…. and I had such a mess in my mind that I didn’t know how to create a simple model for QTableView. Partly because you didn’t provide any example how to create a basic table model, only complex ones.

You really should start tutorial with something very simple and very limited, but where the reader can copy-paste the whole code and have a working program. It was a pain for me because you told how to implement some functions, but others were “to be done on your own”.

I believe I’ll be learning threads and painting soon. I saw threads framework wasn’t very deeply described, you mainly sent reader to external books. I don’t blame you, but give a hint where you can improve your docs.

parallaxe says:

At the moment, QML is my highest priority as I’m playing around with it and like it a lot – but some things aren’t just working as expected. But i have to try out more for exploring if my expectations are wrong or some behaviours of QML ๐Ÿ˜‰
Oh, yeah, by talking about QML: one thing I’m really missing in Qt itself is something like XmlListModel – it’s just great. Easy to use and expressive enough for the most use-cases – are there plans to bring something similiar up into the Qt-API (maybe even an editable model)?

Andrej is taking a point that’s also interesting for me: how to connect MV and GV in proper way, especially the synchronisation of the model and graphicsscene.

PS: please use an other captcha-system. This one is just bad

Axel Jรคger says:

I do agree that more documentation is needed for item views. There is one case that seems trivial but that I am still unable to fully implement:

– Drag and drop sorting of a table model shown in a QTreeView.

I have a list of key=value pairs. I use a table model with two columns to implement and a QTreeView to show that list. QTreeView looks nicer than QTableView.

I want to have indicator lines on drop between those two rows where the moving row is to be inserted. With a QTreeView, you dont get drop indicators for rows, but for cells. So this trivial usecase becomes a nightmare to implement. I dont want to have those uggly up and down buttons next to my list view to move rows around.

bingoman says:

MVC in more advanced use. All available examples in the Web and on the documentation site cover standard use-cases. There is a lot of information how to use delegate items to edit item in the list/table via double click. But there is no information how to override correctly .paint() method (and related) to draw complex (e.g. composed of container with the set of widgets) widgets on the view.

Barberis says:

Debugging:
– The description of the internals like .moc files, how to (in different debuggers) analyze Qt most common classes fields, the concept of d-pointer, etc. For example sometimes you get in “emit mySignal()” and you need to come through a bunch of the internal calls to get to the slot. What are these internals ? The second breakpoint in the slot itself is not always a good solution;
– I might mention non-Qt related stuff here but a little introduction to a platform-related stuff like described in “Deploying Qt for Mac” QtAssistant article is always a good kick-off to a further investigation. So why don’t post some “Qt debug best-practices” of what trolls can recommend from their experience of developing Qt ?
– Would be nice to (even shortly) give some introduction how Threads/DeadLocks may be analyzed using something like Valgrind;
– Performance measuring for Qt apps. Especially for mobile platforms.

Thanks for all the suggestions!

nathan, you assumption was correct – responders in the survey were able to mark more then one area. This is why the sum is larger then 100%.

It looks for me that our initial idea with a tutorial for MV was correct. And yes, Fazer, the tutorial starts with basics (read only, a table one) and goes to editing, delegates and selections. QML stuff is on our list too. Stay tuned! ๐Ÿ™‚

I’m not quite sure, it would be useful on your level, but we’ve published videos from the Training Day at Developer Days 2009. There is a special module about GraphicsView as well, see these links (same topic presented by different training partners):

http://qt.nokia.com/developer/learning/online/training/training-day-at-developer-days-2009/programming-with-qt-qgraphicsview-by-kdab
and
http://qt.nokia.com/developer/learning/online/training/training-day-at-developer-days-2009/programming-with-qt-qgraphicsview-by-ics

Matt Levine says:

Are there other online training videos like these? Its kind of hard to find them just navigating through the “Learning” section.

bastibense says:

For me the ItemView Model/View-Framework has always been a terrible pain.
Even if you have a year or two experience with Qt in general, there are a few things that are especially painful:

– Subclassing QAbstractItemModel — if you have to work with QTreeViews. I wasted a *lot* of time getting my models to work correctly, before dumping them and doing everything with some overhead with QTreeWidget. This is often not as elegant, but it shows that the model/view framework *really* needs some work.

– Drag & Drop — This has been a standard feature on many platforms for many years, but it still feels sluggish when [wost case] you have implement it into your QAbstractItemModel subclass. Otherwise it’s just a bit tricky to understand, but much easier in general compared to QAIM.

From my point of view, with 2,5 years of experience with Qt, I’d say that the model/view framework is the one most overdue part of the framework. Just my 2 cents. ๐Ÿ˜‰

Basti

Hi Matt,

all videos from Developer Days are available under this link: http://qt.nokia.com/developer/learning/elearning

A direct link to the training section is http://qt.nokia.com/developer/learning/online/training/training-day-at-developer-days-2009/

scorp1us says:

How about pointers, there are 5 pointer classes in Qt now. Which one is right?

AD5XJ says:

One topic I did not see on the list – and this greatly surprises me – is Phonon and sound support in general. There is very little documentation or examples for Phonon and the extensive use of it. I would like very much to see some documentation and examples beyond the typical file player application, such as a DSP application or something equally as extensive.

Commenting closed.

Get started today with Qt Download now