Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-69109

QListView with IconMode unusably slow on larger models

    XMLWordPrintable

Details

    • Bug
    • Resolution: Incomplete
    • P2: Important
    • None
    • 5.11.1
    • Widgets: Itemviews
    • None

    Description

      If you set a model on a QListView in IconMode that has a somewhat large row count, its paint event will become so slow it is no longer usable. With ListMode this is not an issue.

      The attached example has a dummy model which returns a row count of 4000 by default (just an arbitrary number which was found to work fine). By clicking the push button, the model will be updated to report 30000 rows instead, which will halt the application. This can be observed by the indeterminate progress bar at the bottom, which will stop animating when you do this. Every time the list view needs to be repainted, it will block like this.

      If you comment out the line that sets the view mode to IconMode, then the application will work fine.

      I have set uniform item size to true and movement to Static on the view, so calculations of the viewport intersection should be fast, but I think the staticness is not taken into consideration, and a BSP tree is still used to find the visible set.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qt.team.quick.subscriptions Qt Quick and Widgets Team
            esabraha Eskil Abrahamsen Blomfeldt
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes