In practically all cases I'm aware of: Yes. It's always wise to separate out code that provides GUI functionality from the actual data logic, which is also done in the Model/View framework Qt provides. Aside from that, you could choose to redesign your user interface. If the application has the driving logic and the GUI code in the same place, you end up rewriting functional parts of your code while you only have to tackle the GUI. The other way around, you will have to work in your GUI code where it only involves data logic. Worst of all is going to be when you have to build a command line client. In my opinion you should approach every GUI application as a command line program with a graphic shell.
Indeed. I have the impression that the QtConcurrent classes work best when you have a lot of queueable tasks. You say that you want to gain more control over threading. In that case I think you should go for QThread and the other threading primitives, rather than QtConcurrent. Remember that you can only have one GUI thread in Qt.
Bookmarks