Class: QgsTaskWithSerialSubTasks

class qgis.core.QgsTaskWithSerialSubTasks

Bases: QgsTask

Task that is composed of sub-tasks to be executed in a serial way, which may be useful for example to add several layers in a single target dataset which does not support concurrent updates.

Added in version 3.36.

QgsTaskWithSerialSubTasks(desc: Optional[str] = ‘’) Constructor

Methods

addSubTask

Add a subtask and transfer its ownership

cancel

childEvent

connectNotify

customEvent

disconnectNotify

finished

If the task is managed by a QgsTaskManager, this will be called after the task has finished (whether through successful completion or via early termination).

isCanceled

Will return True if task should terminate ASAP.

isSignalConnected

receivers

run

rtype:

bool

sender

senderSignalIndex

setProgress

Sets the task's current progress.

timerEvent

addSubTask(self, subTask: QgsTask | None)

Add a subtask and transfer its ownership

The parent task must be added to a QgsTaskManager for subtasks to be utilized. Subtasks should not be added manually to a QgsTaskManager, rather, only the parent task should be added to the manager.

For now, subtasks can NOT be nested.

Parameters:

subTask (Optional[QgsTask])

cancel(self)
childEvent(self, a0: QChildEvent | None)
connectNotify(self, signal: QMetaMethod)
customEvent(self, a0: QEvent | None)
disconnectNotify(self, signal: QMetaMethod)
finished(self, result: bool)

If the task is managed by a QgsTaskManager, this will be called after the task has finished (whether through successful completion or via early termination). The result argument reflects whether the task was successfully completed or not. This method is always called from the main thread, so it is safe to create widgets and perform other operations which require the main thread. However, the GUI will be blocked for the duration of this method so tasks should avoid performing any lengthy operations here.

isCanceled(self) bool

Will return True if task should terminate ASAP. If the task reports the CanCancel flag, then derived classes’ run() methods should periodically check this and terminate in a safe manner.

isSignalConnected(self, signal: QMetaMethod) bool
receivers(self, signal: PYQT_SIGNAL) int
run(self) bool
Return type:

bool

sender(self) QObject | None
senderSignalIndex(self) int
setProgress(self, progress: float)

Sets the task’s current progress. The derived class should call this method whenever the task wants to update its progress. Calling will automatically emit the progressChanged signal.

Parameters:

progress – percent of progress, from 0.0 - 100.0

timerEvent(self, a0: QTimerEvent | None)