Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.4.3, 6.5.2, 6.5.5-1, 6.7.0
Description
Summary
When a single row is added/removed, all delegates are destroyed or pooled. This makes it impossible to meaningfully use the TableView.pooled() and TableView.reused() signals.
Original report
When adding or removing rows or columns from a QML TableView, there are many odd, seemingly random, effects with regard to volatile state data e.g. animation and mouse states.
Qt docs on TableViews offer what is paramount to a disclaimer about this. So, clearly this a long known issue.
The recommended "solution" is to make use of onPooled and onReused slots, or to disable the caching mechanism entirely by setting `reuseItems` to false. But, these solutions are not sufficient, and still force one into a great deal of work and the invention of various kludges.
I have attached a simple project which demonstrates some of these problems, along with more extended descriptions and thoughts on the matter.
Attachments
Issue Links
- is duplicated by
-
QTBUG-116723 TableView + TableModel discards every delegate with every update
- Closed
- is required for
-
QTBUG-70327 TableView: implement support for transitions
- Reported
-
QTBUG-70326 TableView
- In Progress
- relates to
-
QTBUG-124924 TableView: Reducing size causes delegates to be destroyed even when reuseItem==true
- Closed
- mentioned in
-
Page Loading...