-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.4.3, 6.5.2, 6.5.5-1, 6.7.0, 6.10.0 Beta4
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, and it precludes the use of Controls in TableView. ListView does not have such limitations:
(example code at QTBUG-139192)
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.
- is duplicated by
-
QTBUG-116723 TableView + TableModel discards every delegate with every update
-
- Closed
-
-
QTBUG-139192 Controls cannot function properly inside TableView
-
- Closed
-
-
QTBUG-138988 TableView does unnecessary re-use of existing items
-
- 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
-
- resulted in
-
QTBUG-139192 Controls cannot function properly inside TableView
-
- Closed
-
- mentioned in
-
Page Loading...