I know the topic is quite old, but I experienced the exact same issue and this thread was popping up in my search. So, adding a QSortFilterProxyModel and enabling sorting with setSortingEnabled(true) sorts the table in descending order.
I got the correct order when I explicitly specifying the order via indicator right before enabling the sort:
table->horizontalHeader()->setSortIndicator(0, Qt::AscendingOrder); table->setSortingEnabled(true);