By default model doesn't know how to sort data in effective way, you have to implement it by overriding QAbstractItemModel::sort.
Edit: sorry, there is easy solution. Just replace QSqlQueryModel with QSqlTableModel, there is sort method already implemented. You have to just enable sorting in table QTableView::sortingEnabled.
Bookmarks