first: what constitutes a layer is kind of abstract and subject to personal interpretation.

A QTableView displays data of a "model". These models can be layered (through proxy models). How the data gets into the "base" model, is up to you. You might use a QSqlTableModel, or you might communicate with the db through custom classes (lots of room for layers there, too):
How many models (or other layers) you put between the db and your view, is up to you.

I suggest you describe what you plan to achieve, and then we can suggest a (or critique your) design for that goal.
The number of layers is rather immaterial imo. Just try to think of "separation of concerns", i.e. separate db access logic from user interface logic etc and you should be fine.