The MV* Patterns

In really large GUI applications (ex. Visual Studio itself, Microsoft Office, even iPhone/Android apps), the are a huge collection of Window and Dialog objects. Those apps can get very hard to coordinate internally. You can end up with a complex mess eventually.

To wrangle it, programmers have invented some design patterns. They are the MV* patterns.

The core pattern is called MVC. https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

There are variants:

  • MVP
  • MVVM

And there are other variants from those:

  • Passive View
  • Supervising Controller

In a Qt app, you can use any of those patterns.

Qt has an example that talks about a Model-View pattern. That's as basic as it gets -- it's missing the 3rd piece. http://doc.qt.io/qt-5/modelview.html