Model-view-controller programming with Qt
Writing software is an exercise in managing abstractions. The more you can reason abstractly about your software system, the better off you are. A key abstraction that's been around in the GUI world since the 1970s is the model-view-controller (MVC) paradigm. I'll discuss MVC briefly here, but there's a lot written about it on the Web, so if it's new to you, you should definitely head over to your favorite search engine and look it up.
In MVC, you divide the code that concerns your user interface into three logical components:
Model: This is responsible for storing the data to show to the user. It's a container of some kind and has no knowledge about your user interface, how things should be drawn, or which events or methods should be triggered by the user when she interacts with your application.
View: This is responsible for drawing the model's contents on the display.
Controller: This is responsible for manipulating the contents of the model in...