An Introdution to Design Patterns in C++ with QT