Did you solve the issue? My solution partially works for my case, hence I am still looking for a definitive solution.
So, define the delegate in the HorizontalHeaderView as suggested in the question you've mentioned.
In the TableView, implement a columnWidthProvider function such as the one bellow:
columnWidthProvider: function(column) {
if (!isColumnLoaded(column))
return -1;
let headerWidth = horizontalHeader.implicitColumnWidth(column);
let dataWidth = tableView.implicitColumnWidth(column);
// limit the minimum width to the header width
let columnWidth = Math.max(headerWidth, dataWidth);
// and optionally limit the maximum width to 200
return Math.min(columnWidth, 200);
}
The problem with this solution is that it prevents manual resizing of the columns.