Sort the tree view by click a column.
Set the view can be sorted by click the "header".
treeView_->setSortingEnabled(true);Connect the header signal to a slot made by you.
connect(treeView_->header(), SIGNAL(sortIndicatorChanged(int, Qt::SortOrder)), treeModel_, SLOT(sortByColumn(int, Qt::SortOrder)));In the slot, call the sort() virtual function of the model. sort() virtual function is a virtual function of QAbstractItemModel, and one should override it.
void TreeModel::sortByColumn(int column, Qt::SortOrder order) { sort(column, order); }Override the sort() function as your model should do.
emit dataChanged(QModelIndex(), QModelIndex()); from a model to update the whole tree view.