All
I am very new to Qt but so far think it looks really good. I have previously created several very complex MFC applications for Windows only, but now we need to start developing applications for a range of platforms including Linux, etc.

As such therefore I am quite accustomed to the MFC style of programming, however I don't want to just blindly use this programming style for Qt if it is not appropriate.

Now by style I really mean the programming paradigm. MFC tries to be object orientated but does not manage it entirely. Qt at first sight seems to be structured from the off to be an OO framework and therefore I want to take advantage of this from the off. It is all too easy to use something in the spirit of the language/API but fail to actually embrace the methodology. Too many C++ programs are written which are basically C programs written in C++.

I have previously used both dialog and SDI based interfaces in MFC. Both these seem possible under Qt, but so far I have not seen the same document/view framework that MFC presents for SDIs compared to Qt. I did look into document/view stuff under Qt but only found references to MVC concepts with regard to a selection of widgets (tables, lists and trees). It did not look like this concept extended to the application level which it does in MFC with the CDocument class behind the GUI. Now maybe this is just a usage issue and the concept is there, I am just not sure as MFC and VC++ creates at least the bare templates to these classes. If Qt does not implement this mechanism then I guess it can be created by a simple C++ class which uses the Qt slots and signals in the QUI classes.

Also in MFC you are quite often forced to create separate classes as a result of certain GUI designs. For example tab panes are not designed in place with the GUI editor, but as separate form views. As such they get created as separate classes. Qt seems to allow the contents of a tab pane to be visually constructed, which is just excellent. However this would then seem to imply that this tab control is just another child class of a single main window class. Is this the case? Is there any benefit in splitting the GUI controls into separate classes? I assume that is you create popup dialogs then these will be separate classes from a Qt view?

One final question. How does Qt compare to MFC in terms of an application framework? MFC encompasses not just the GUI but also the application in its framework, see SDIs, etc. Some old Googling results for Qt compared to MFC seemed to suggest that Qt used to be just a GUI framework rather than an application framework, but this was quite old.

Any hints, tips, etc. on how to structure a Qt application, SDI style, would be much appreciated. The examples are good but quite small and hence do not necessarily show you concepts and methodologies that you may adopt in a larger application.

I really want to start off on the right lines with this rather than start trying to make the Qt program work how I have been used to MFC programs working.

Cheers