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

Crash after reparenting items containing GraphicalEffects components

    XMLWordPrintable

    Details

    • Platform/s:
      Linux/X11, macOS, Windows

      Description

      After experiencing some crashes in our app, using Qt 5.15.1, I found causing component.

      It is the ColorOverlay component from QtGraphicalEffects.

      The ColorOverlay was created in the main window and then reparented with a bunch of other components to a different window. By reverting and repeating the process of reparenting, the app crashes at some point

      After reparenting the items, there are some warning messages:

      QQuickItem: Cannot use same item on different windows at the same time.

      I recreated the behavior in a small test application and tried to work around the crash with a Loader. It only doesn't crash, if I connect to the windowChanged signal of the top level Item, to deactivate and activate the Loader during the reparenting process. If I only reparent the item without deactivating the Loader, the app crashes after I resize the new window.

      Additionally I noticed that a component, which uses a GraphicsEffect like ColorOverlay, when loaded via a Loader it causes graphical artifacts, when the window is resized (maybe another Bug?).

      Previously we used Qt 5.10.1 and the warning messages also appeared, but it didn't crashed.

        Attachments

        1. main.qml
          3 kB
          Voodoo Master
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            qt.team.quick.subscriptions Qt Quick and Widgets Team
            Reporter:
            voodoo66 Voodoo Master
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes