Class: QgsProviderSublayerTask

class qgis.core.QgsProviderSublayerTask

Bases: QgsTask

A QgsTask which retrieves sublayer details for a URI.

This task executes a call to QgsProviderRegistry.querySublayers() in a background thread. Depending on the URI queried it can be expensive to calculate the sublayers (e.g. in the case where a full table scan is required to resolve mixed geometry type layers), so it is beneficial to perform these queries in the background wherever possible.

While QgsProviderRegistry.querySublayers() offers various flags to control how in-depth the querying will be, these flags are not exposed through QgsProviderSublayerTask. Rather QgsProviderSublayerTask will always execute the most thorough query possible, regardless of how expensive this may be.

New in version 3.22.

QgsProviderSublayerTask(uri: str, includeSystemTables: bool = False) Constructor for QgsProviderSublayerTask, which retrieves sublayer details for the specified uri.

Methods

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

results

Returns the sublayer details as calculated by the task.

run

rtype

bool

sender

senderSignalIndex

setProgress

Sets the task's current progress.

timerEvent

cancel(self)
childEvent(self, QChildEvent)
connectNotify(self, QMetaMethod)
customEvent(self, QEvent)
disconnectNotify(self, 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, QMetaMethod) bool
receivers(self, PYQT_SIGNAL) int
results(self) List[QgsProviderSublayerDetails]

Returns the sublayer details as calculated by the task.

Return type

List[QgsProviderSublayerDetails]

run(self) bool
Return type

bool

sender(self) QObject
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, QTimerEvent)