@JonB @SGaist Thanks for taking the time to reply. Sorry I've done a bad job of explaining.. The issue is not with the scanning or sorting at scan time.
I'm using a QRunner thread which recursively scans the directory tree, then creates QStandardItem for each file/directory/symlink and puts them into a QStandardItemModel, which is associated with a QTreeView - The scanning and initial sorting (whilst scanning) work perfectly fine.
Cnce scanning is complete, a user can use the column headers to change the sorting (i.e. via Name or Type), if I rely upon the default sorting, it causes the UI to freeze whilst the sort is processed. If I use a QSortFilterProxyModel, this freezing does not happen (UI remains interactive and sort is much quicker), but, the problem is, I'm getting the on-selection glitch that I showed above (if I scroll the tree or resize the window, it forces a redraw and fixes it self).
I would provide the code.. but, it's a hell of a mess (this is not my day job, I'm just experimenting/playing in the evenings)
I've come to the conclusion its a bug / anomaly as I've got the same issue with both PyQT5 and PySide2.. So think I'm going to put this to bed, and move onto something else.