Your approach is not good. In Model/View architecture the main idea is to separate data (model) from it's presentation (view), but you are connecting those things in one class.

But if you really want such approach then there is QTableWidget which is data container and view at once.

And finally: what do you need those key events for? I suppose that for editing items - am I right? Then you should take a look into delegates, as they are used for custom presentation in a view and for custom editors for data presenting in view. And you can get there key events from cells.