ItemParticle QML Type | Qt Quick | Qt 6.11.1
Description: For specifying a delegate to paint particles.

- Qt 6.11
- Qt Quick
- QML Types
- QtQuick.Particles
- ItemParticle
- Qt 6.11.1 Reference Documentation

# ItemParticle QML Type

For specifying a delegate to paint particles. More...

Import Statement: | `import QtQuick.Particles`
Inherits: | ParticlePainter

- List of all members, including inherited members

## Properties

- delegate : Component
- fade : bool

## Methods

- void freeze(Item item)
- void give(Item item)
- void take(Item item, bool prioritize)
- void unfreeze(Item item)

## Detailed Description

## Property Documentation

### delegate : Component

An instance of the delegate will be created for every logical particle, and moved along with it. As an alternative to using delegate, you can create Item instances yourself and hand them to the ItemParticle to move using the take method.

Any delegate instances created by ItemParticle will be destroyed when the logical particle expires.

### fade : bool

If true, the item will automatically be faded in and out at the ends of its lifetime. If false, you will have to implement any entry effect yourself.

Default is true.

## Method Documentation

### void freeze(Item item)

Suspends the flow of time for the logical particle which item represents, allowing you to control its movement.

### void give(Item item)

Orders the ItemParticle to give you control of the item. It will cease controlling it and the item will lose its association to the logical particle.

### void take(Item item, bool prioritize)

Asks the ItemParticle to take over control of item positioning temporarily. It will follow the movement of a logical particle when one is available.

By default items form a queue when waiting for a logical particle, but if prioritize is `true`, then it will go immediately to the head of the queue.

ItemParticle does not take ownership of the item, and will relinquish control when the logical particle expires. Commonly at this point you will want to put it back in the queue, you can do this with the below line in the delegate definition:

     ItemParticle.onDetached: itemParticleInstance.take(delegateRootItem);

or delete it, such as with the below line in the delegate definition:

     ItemParticle.onDetached: delegateRootItem.destroy();

### void unfreeze(Item item)

Restarts the flow of time for the logical particle which item represents, allowing it to be moved by the particle system again.