Class: QgsTaskManager

class qgis.core.QgsTaskManager

Bases: PyQt5.QtCore.QObject

Task manager for managing a set of long-running QgsTask tasks. This class can be created directly, or accessed via QgsApplication.taskManager().

New in version 3.0.

QgsTaskManager(parent: QObject = None) Constructor for QgsTaskManager.

Parameters

parent

parent QObject

Methods

activeTasks

Returns a list of the active (queued or running) tasks.

addTask

Adds a task to the manager.

cancelAll

Instructs all tasks tracked by the manager to terminate.

childEvent

connectNotify

count

Returns the number of tasks tracked by the manager.

countActiveTasks

Returns the number of active (queued or running) tasks.

customEvent

dependenciesSatisfied

Returns True if all dependencies for the specified task are satisfied

dependentLayers

Returns a list of layers on which as task is dependent.

disconnectNotify

isSignalConnected

receivers

sender

senderSignalIndex

task

Returns the task with matching ID.

taskId

Returns the unique task ID corresponding to a task managed by the class.

tasks

Returns all tasks tracked by the manager.

tasksDependentOnLayer

Returns a list of tasks which depend on a layer.

timerEvent

triggerTask

Triggers a task, e.g.

Signals

allTasksFinished

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

countActiveTasksChanged

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

finalTaskProgressChanged

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

progressChanged

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

statusChanged

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

taskAboutToBeDeleted

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

taskAdded

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

taskTriggered

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

class TaskDefinition(task: QgsTask, dependentTasks: Iterable[QgsTask] = [])

Bases: sip.wrapper

Constructor for TaskDefinition. Ownership of the task is not transferred to the definition, but will be transferred to a QgsTaskManager.

QgsTaskManager.TaskDefinition(QgsTaskManager.TaskDefinition)

dependentTasks
task
activeTasks(self) List[QgsTask]

Returns a list of the active (queued or running) tasks.

Return type

List[QgsTask]

addTask(self, task: QgsTask, priority: int = 0) int

Adds a task to the manager. Ownership of the task is transferred to the manager, and the task manager will be responsible for starting the task. The priority argument can be used to control the run queue’s order of execution, with larger numbers taking precedence over lower priority numbers.

Returns

unique task ID, or 0 if task could not be added

addTask(self, task: QgsTaskManager.TaskDefinition, priority: int = 0) -> int Adds a task to the manager, using a full task definition (including dependency handling). Ownership of the task is transferred to the manager, and the task manager will be responsible for starting the task. The priority argument can be used to control the run queue’s order of execution, with larger numbers taking precedence over lower priority numbers.

Return type

int

Returns

unique task ID, or 0 if task could not be added

Parameters
  • task (QgsTask) –

  • priority (int = 0) –

allTasksFinished

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type

PYQT_SIGNAL

cancelAll(self)

Instructs all tasks tracked by the manager to terminate. Individual tasks may take some time to cancel, or may totally ignore this instruction. Calling this does not block but will instead signal the tasks to cancel and then return immediately.

childEvent(self, QChildEvent)
connectNotify(self, QMetaMethod)
count(self) int

Returns the number of tasks tracked by the manager.

Return type

int

countActiveTasks(self, includeHidden: bool = True) int

Returns the number of active (queued or running) tasks.

The includeHidden argument dictates whether hidden tasks should be shown.

See also

activeTasks()

Parameters

includeHidden (bool = True) –

Return type

int

countActiveTasksChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type

PYQT_SIGNAL

customEvent(self, QEvent)
dependenciesSatisfied(self, taskId: int) bool

Returns True if all dependencies for the specified task are satisfied

Parameters

taskId (int) –

Return type

bool

dependentLayers(self, taskId: int) List[QgsMapLayer]

Returns a list of layers on which as task is dependent. The task will automatically be canceled if any of these layers are about to be removed.

Parameters

taskId (int) – task ID

Return type

List[QgsMapLayer]

Returns

list of layers

disconnectNotify(self, QMetaMethod)
finalTaskProgressChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type

PYQT_SIGNAL

isSignalConnected(self, QMetaMethod) bool
progressChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type

PYQT_SIGNAL

receivers(self, PYQT_SIGNAL) int
sender(self) QObject
senderSignalIndex(self) int
statusChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type

PYQT_SIGNAL

task(self, id: int) QgsTask

Returns the task with matching ID.

Parameters

id (int) – task ID

Return type

QgsTask

Returns

task if found, or None

taskAboutToBeDeleted

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type

PYQT_SIGNAL

taskAdded

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type

PYQT_SIGNAL

taskId(self, task: QgsTask) int

Returns the unique task ID corresponding to a task managed by the class.

Parameters

task (QgsTask) – task to find

Return type

int

Returns

task ID, or -1 if task not found

taskTriggered

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type

PYQT_SIGNAL

tasks(self) List[QgsTask]

Returns all tasks tracked by the manager.

Return type

List[QgsTask]

tasksDependentOnLayer(self, layer: QgsMapLayer) List[QgsTask]

Returns a list of tasks which depend on a layer.

Parameters

layer (QgsMapLayer) –

Return type

List[QgsTask]

timerEvent(self, QTimerEvent)
triggerTask(self, task: QgsTask)

Triggers a task, e.g. as a result of a GUI interaction.

See also

taskTriggered()

Parameters

task (QgsTask) –