update source files, add a central widget to mainApp, etc.

note that new a QWidget in MianWindow's constructor locally will cause a memory leak, at this moment we ignore it