I think it is a matter of personal taste.
I agree with you that the QMainWindow subclass is a good candidate to become the good object of a QApplication.
From the academic point of view, this is purely wrong because a window is a view class and should not contain any business logic code at all.
I suggest to put most code in QObject-subclasses and let these objects provide actions that you can put around in your mainwindow. The downside of this approach is that you cannot do it with designer.
An extra suggestion from me is to put most of your code in subclasses of QAbstractListModel or QAbstractTableModel if it somehow represents a list in any form, even if you will not it in a listview in the final gui. The nice thing about this is that you can attach a listview to it for debugging purposes instead of adding a lot of qDebug.
Bookmarks