[PyQt] Resizing rows to contents after sort when QSortFilterProxyModel is used

Steve Waterbury waterbug at pangalactic.us
Fri Feb 12 06:21:48 GMT 2016

On 02/12/2016 01:17 AM, Steve Waterbury wrote:
> On 02/05/2016 04:25 PM, David Cortesi wrote:
>>     From: Steve Waterbury <waterbug at pangalactic.us
>>     Any ideas on this one?
>>      > I'm using a QTableView with a QSortFilterProxyModel.
>>      > When I first instantiate and populate the
>>      > table view, I call resizeColumnToContents on each
>>      > column, followed by resizeRowsToContents on the table
>>      > view (there are some multi-line cells).
>>      >
>>      > However, the sizing to contents is lost when a sort is done
>> You need to grab some signal that is emitted when the sort completes and
>> the view has been completely repopulated with sorted data. (Sort
>> indicator changed might not necessarily correspond to that.) My guess
>> would be  modelReset. I *think* the way the sort filter proxy works is,
>> it tells the view, modelAboutToBeReset, then modelReset, which makes the
>> view repopulate itself by calling the data() method of the model.
> Seemed like a logical approach but doesn't work -- thanks anyway.
> I guess I will have to implement the sort myself and refresh the
> view.  I'm rather surprised that Qt doesn't handle this rather
> simple scenario!
> Steve

Oops -- re-sending to correct the subject ... a little list
etiquette:  never reply to a "digest" message without fixing
the subject!  ;)

More information about the PyQt mailing list