Command pattern, QActions, QToolbars, and QActionGroups , virtual pointers, virtual tables