This is an old question but I found a solution. I'm using a QSortFilterProxyModel but it should work with your tree model. Just emit the dataChanged() signal with invalid model indicies like so:
dataChanged(QModelIndex(), QModelIndex());
This way no data is affected and the treeView refreshes.