Class: QgsFeedback

Base class for feedback objects to be used for cancellation of something running in a worker thread.

The class may be used as is or it may be subclassed for extended functionality for a particular operation (e.g. report progress or pass some data for preview).

When cancel() is called, the internal code has two options to check for cancellation state:

  • if the worker thread uses an event loop (e.g. for network communication), the code can make a queued connection to canceled() signal and handle the cancellation in its slot.

  • if the worker thread does not use an event loop, it can poll isCanceled() method regularly to see if the operation should be canceled.

The class is meant to be created and destroyed in the main thread.

For map rendering, the object may be created in constructor of a QgsMapLayerRenderer subclass and available with QgsMapLayerRenderer.feedback() method. When a map rendering job gets canceled, the cancel() method is called on the feedback object of all layers.

Class Hierarchy

Inheritance diagram of qgis.core.QgsFeedback

Base classes

QObject

Subclasses

QgsProcessingFeedback

Base class for providing feedback from a processing algorithm.

QgsRasterBlockFeedback

Feedback object tailored for raster block reading.

Methods

cancel

Tells the internal routines that the current operation should be canceled.

isCanceled

Tells whether the operation has been canceled already

processedCount

Returns the current processed objects count reported by the feedback object.

progress

Returns the current progress reported by the feedback object.

setProcessedCount

Sets the current processed objects count for the feedback object.

setProgress

Sets the current progress for the feedback object.

Signals

canceled

Internal routines can connect to this signal if they use event loop

processedCountChanged

Emitted when the feedback object reports a change in the number of processed objects.

progressChanged

Emitted when the feedback object reports a progress change.

class qgis.core.QgsFeedback[source]

Bases: QObject

__init__(parent: QObject | None = None)

Construct a feedback object

Parameters:

parent (Optional[QObject] = None)

cancel(self)[source]

Tells the internal routines that the current operation should be canceled. This should be run by the main thread

signal canceled[source]

Internal routines can connect to this signal if they use event loop

isCanceled(self) bool[source]

Tells whether the operation has been canceled already

Return type:

bool

processedCount(self) int

Returns the current processed objects count reported by the feedback object. Depending on how the feedback object is used processed count reporting may not be supported. The returned value is an unsigned long integer and starts from 0.

Added in version 3.24.

Return type:

int

signal processedCountChanged(processedCount: int)[source]

Emitted when the feedback object reports a change in the number of processed objects. Depending on how the feedback object is used processed count reporting may not be supported. The processedCount argument is an unsigned long integer and starts from 0.

See also

setProgress()

See also

progress()

Added in version 3.24.

Parameters:

processedCount (int)

progress(self) float[source]

Returns the current progress reported by the feedback object. Depending on how the feedback object is used progress reporting may not be supported. The returned value is in percentage and ranges from 0-100.

See also

setProgress()

Return type:

float

signal progressChanged(progress: float)[source]

Emitted when the feedback object reports a progress change. Depending on how the feedback object is used progress reporting may not be supported. The progress argument is in percentage and ranges from 0-100.

See also

setProgress()

See also

progress()

Parameters:

progress (float)

setProcessedCount(self, processedCount: int)[source]

Sets the current processed objects count for the feedback object. The processedCount argument is an unsigned long integer and starts from 0.

See also

processedCount()

Added in version 3.24.

Parameters:

processedCount (int)

setProgress(self, progress: float)[source]

Sets the current progress for the feedback object. The progress argument is in percentage and valid values range from 0-100.

See also

progress()

Parameters:

progress (float)