[Interest] Pause QTableView while model continues to update
Francis Herne
mail at flherne.uk
Thu Jul 9 15:58:05 CEST 2020
On Wednesday, 8 July 2020 19:20:33 BST Murphy, Sean wrote:
> Is there a way to temporarily pause a QTableView while the underlying model
> continues to update?
>
> My scenario:
> - I have two separate QTableViews connected to a single model.
> - The model is being fed from a continuously updating data source, i.e. a
> sensor. - One of the views needs to remain live at all times - so as the
> model's data updates, the view updates immediately.
>
> For the other view, the user should be able to "pause" that view's display,
> spend as much time as they want looking at the data on that paused table,
> and then whenever they choose, they can un-pause that view and it returns
> to updating constantly. This view has to remain fully usable (scroll bars
> work, clicks work, etc.) while paused.
>
> The only idea I have at the moment is to have a second model object, that is
> identical to the first one, except that it isn't connected to the sensor.
> At the time the user wants to pause the view, I copy the current data out
> of the main model into the second model, swap out the paused view's model
> out to the second model, and then swap it back to the main model when the
> user wants to go back live.
>
> Am I missing something easier? The only other idea I had was that I could
> try to change the second view from a pure QTableView to one that inherits
> from QTableView and then have my own slot that disconnects/connects the
> signals between the model and that view based on the when the user wants to
> pause/resume.
>
> Sean
You could have a QProxyModel subclass with a 'timeRange' (or so) property.
When set to null it would simply relay everything to the backing model,
otherwise it would provide only the relevant subset.
I think this would be much easier than copying the data, or swapping models in
and out.
-Francis H
More information about the Interest
mailing list