Class: QgsDataItem

class qgis.core.QgsDataItem(type: QgsDataItem.Type, parent: QgsDataItem, name: str, path: str, providerKey: str = '')

Bases: PyQt5.QtCore.QObject

Constructor for QgsDataItem, with the specified parent item.

The name argument specifies the text to show in the model for the item. A translated string should be used wherever appropriate.

The path argument gives the item path in the browser tree. The path string can take any form, but QgsDataItem items pointing to different logical locations should always use a different item path.

The optional providerKey string (added in QGIS 3.12) can be used to specify the key for the QgsDataItemProvider that created this item.

Base class for all items in the model.

Parent/children hierarchy is not based on QObject.

Methods

acceptDrop

Returns whether the item accepts drag and dropped layers - e.g.

actions

Returns the list of actions available for this item.

addChildItem

Inserts a new child item.

capabilities2

Returns the capabilities for the data item.

childEvent

children

rtype

object

childrenCreated

connectNotify

createChildren

Create children.

customEvent

databaseConnection

For data items that represent a DB connection or one of its children, this method returns a connection.

deferredDelete

The item is scheduled to be deleted.

deleteChildItem

Removes and deletes a child item, emitting relevant signals to the model.

deleteLater

deleteLater(self) Safely delete the item:

depopulate

Remove children recursively and set as not populated.

disconnectNotify

equal

Returns True if this item is equal to another item (by testing item type and path).

findItem

param items

handleDoubleClick

Called when a user double clicks on the item.

handleDrop

Attempts to process the mime data dropped on this item.

hasChildren

rtype

bool

hasDragEnabled

Returns True if the item may be dragged.

icon

rtype

QIcon

isSignalConnected

layerCollection

Returns True if the data item is a collection of layers The default implementation returns False, subclasses must implement this method if their children are layers.

menus

Returns the list of menus available for this item.

mimeUri

Returns mime URI for the data item.

moveToThread

Move object and all its descendants to thread

name

Returns the name of the item (the displayed text for the item).

paramWidget

Returns source widget from data item for QgsBrowserPropertiesWidget

parent

Gets item parent.

path

rtype

str

pathComponent

Create path component replacing path separators

populate

param children

providerKey

Returns the provider key that created this item (e.g.

receivers

refresh

Refresh the items from a specified list of child items.

refreshConnections

Causes a data item provider to refresh all registered connections.

removeChildItem

Removes a child item and returns it without deleting it.

rename

Sets a new name for the item, and returns True if the item was successfully renamed.

rowCount

rtype

int

sender

senderSignalIndex

setCapabilities

Sets the capabilities for the data item.

setCrs

Writes the selected crs into data source.

setIcon

param icon

setIconName

param iconName

setName

Sets the name of the item (the displayed text for the item).

setParent

Set item parent and connect / disconnect parent to / from item signals.

setPath

param path

setProviderKey

Sets the provider key that created this item (e.g.

setSortKey

Sets a custom sorting key for the item.

setState

Set item state.

setToolTip

param msg

sortKey

Returns the sorting key for the item.

state

New in version 2.8.

timerEvent

toolTip

rtype

str

type

rtype

QgsDataItem.Type

updateIcon

Will request a repaint of this icon.

Signals

beginInsertItems

beginInsertItems(self, parent: QgsDataItem, first: int, last: int) [signal]

beginRemoveItems

beginRemoveItems(self, parent: QgsDataItem, first: int, last: int) [signal]

connectionsChanged

Emitted when the connections of the provider with the specified providerKey have changed.

dataChanged

dataChanged(self, item: QgsDataItem) [signal]

endInsertItems

endInsertItems(self) [signal]

endRemoveItems

endRemoveItems(self) [signal]

stateChanged

stateChanged(self, item: QgsDataItem, oldState: QgsDataItem.State) [signal]

Attributes

Collapse

Collection

Custom

Delete

Directory

Error

Fast

Favorites

Fertile

Field

Fields

Layer

NoCapabilities

NotPopulated

Populated

Populating

Project

Rename

SetCrs

class Capabilities
class Capabilities(Union[QgsDataItem.Capabilities, QgsDataItem.Capability]) None
class Capabilities(QgsDataItem.Capabilities) None

Bases: sip.wrapper

class Capability

Bases: int

Collapse = 8
Collection = 0
Custom = 6
Delete = 32
Directory = 1
Error = 3
Fast = 4
Favorites = 4
Fertile = 2
Field = 8
Fields = 7
Layer = 2
NoCapabilities = 0
NotPopulated = 0
Populated = 2
Populating = 1
Project = 5
Rename = 16
SetCrs = 1
class State

Bases: int

baseClass

alias of qgis._core.QgsDataItem

class Type

Bases: int

baseClass

alias of qgis._core.QgsDataItem

acceptDrop(self) bool

Returns whether the item accepts drag and dropped layers - e.g. for importing a dataset to a provider. Subclasses should override this and handleDrop() to accept dropped layers.

See also

handleDrop()

See also

QgsDataItemGuiProvider.handleDrop()

Deprecated since version QGIS: 3.10

Return type

bool

actions(self, parent: QWidget) List[QAction]

Returns the list of actions available for this item. This is usually used for the popup menu on right-clicking the item. Subclasses should override this to provide actions.

Subclasses should ensure that ownership of created actions is correctly handled by parenting them to the specified parent widget.

Parameters

parent (QWidget) –

Return type

List[QAction]

addChildItem(self, child: QgsDataItem, refresh: bool = False)

Inserts a new child item. The child will be inserted at a position using an alphabetical order based on mName.

Parameters
  • child (QgsDataItem) – child item to insert. Ownership is transferred, and item parent will be set and relevant connections made.

  • refresh (bool = False) –

    • set to True to refresh populated item, emitting relevant signals to the model

beginInsertItems

beginInsertItems(self, parent: QgsDataItem, first: int, last: int) [signal]

Parameters
  • parent (QgsDataItem) –

  • first (int) –

  • last (int) –

beginRemoveItems

beginRemoveItems(self, parent: QgsDataItem, first: int, last: int) [signal]

Parameters
  • parent (QgsDataItem) –

  • first (int) –

  • last (int) –

capabilities2(self) QgsDataItem.Capabilities

Returns the capabilities for the data item.

Return type

QgsDataItem.Capabilities

childEvent(self, QChildEvent)
children(self) object
Return type

object

childrenCreated(self)
connectNotify(self, QMetaMethod)
connectionsChanged

Emitted when the connections of the provider with the specified providerKey have changed.

This signal is normally forwarded to the app in order to refresh the connection item in the provider dialogs and to refresh the connection items in the other open browsers. [signal]

Parameters

providerKey (str = '') –

createChildren(self) object

Create children. Children are not expected to have parent set.

Warning

This method MUST BE THREAD SAFE.

Return type

object

customEvent(self, QEvent)
dataChanged

dataChanged(self, item: QgsDataItem) [signal]

Parameters

item (QgsDataItem) –

databaseConnection(self) QgsAbstractDatabaseProviderConnection

For data items that represent a DB connection or one of its children, this method returns a connection. All other data items will return NULL.

Ownership of the returned objects is transferred to the caller.

New in version 3.16.

Return type

QgsAbstractDatabaseProviderConnection

deferredDelete(self) bool

The item is scheduled to be deleted. E.g. if deleteLater() is called when item is in Populating state (createChildren() running in another thread), the deferredDelete() returns True and item will be deleted once Populating finished. Items with slow reateChildren() (for example network or database based) may check during createChildren() if deferredDelete() returns True and return from createChildren() immediately because result will be useless.

Return type

bool

deleteChildItem(self, child: QgsDataItem)

Removes and deletes a child item, emitting relevant signals to the model.

Parameters

child (QgsDataItem) – child to remove. Item must exist as a current child.

See also

addChildItem()

deleteLater(items: object)

deleteLater(self) Safely delete the item:

  • disconnects parent

  • unsets parent (but does not remove itself)

  • deletes all its descendants recursively

  • waits until Populating state (createChildren() in thread) finished without blocking main thread

  • calls QObject.deleteLater()

Parameters

items (object) –

depopulate(self)

Remove children recursively and set as not populated. This is used when refreshing collapsed items.

disconnectNotify(self, QMetaMethod)
endInsertItems

endInsertItems(self) [signal]

endRemoveItems

endRemoveItems(self) [signal]

equal(self, other: QgsDataItem) bool

Returns True if this item is equal to another item (by testing item type and path).

Parameters

other (QgsDataItem) –

Return type

bool

findItem(items: object, item: QgsDataItem) int
Parameters
Return type

int

handleDoubleClick(self) bool

Called when a user double clicks on the item. Subclasses should return True if they have implemented a double-click handler and do not want the default double-click behavior for items.

New in version 3.0.

Return type

bool

handleDrop(self, QMimeData, Qt.DropAction) bool

Attempts to process the mime data dropped on this item. Subclasses must override this and acceptDrop() if they accept dropped layers.

See also

acceptDrop()

See also

QgsDataItemGuiProvider.handleDrop()

Deprecated since version QGIS: 3.10

Return type

bool

hasChildren(self) bool
Return type

bool

hasDragEnabled(self) bool

Returns True if the item may be dragged. Default implementation returns False. A draggable item has to implement mimeUri() that will be used to pass data.

See also

mimeUri()

New in version 3.0.

Return type

bool

icon(self) QIcon
Return type

QIcon

isSignalConnected(self, QMetaMethod) bool
layerCollection(self) bool

Returns True if the data item is a collection of layers The default implementation returns False, subclasses must implement this method if their children are layers.

New in version 3.14.

Return type

bool

menus(self, parent: QWidget) List[QMenu]

Returns the list of menus available for this item. This is usually used for the popup menu on right-clicking the item. Subclasses should override this to provide actions. Subclasses should ensure that ownership of created menus is correctly handled by parenting them to the specified parent widget.

Parameters

parent (QWidget) – a parent widget of the menu

Return type

List[QMenu]

Returns

list of menus

New in version 3.0.

mimeUri(self) QgsMimeDataUtils.Uri

Returns mime URI for the data item. Items that return valid URI will be returned in mime data when dragging a selection from browser model.

See also

hasDragEnabled()

New in version 3.0.

Return type

QgsMimeDataUtils.Uri

moveToThread(self, targetThread: QThread)

Move object and all its descendants to thread

Parameters

targetThread (QThread) –

name(self) str

Returns the name of the item (the displayed text for the item).

See also

setName()

Return type

str

paramWidget(self) QWidget

Returns source widget from data item for QgsBrowserPropertiesWidget

Use QgsDataItemGuiProvider.createParamWidget() instead

Deprecated since version QGIS: 3.10

Return type

QWidget

parent(self) QgsDataItem

Gets item parent. QgsDataItem maintains its own items hierarchy, it does not use QObject hierarchy.

Return type

QgsDataItem

path(self) str
Return type

str

pathComponent(component: str) str

Create path component replacing path separators

Parameters

component (str) –

Return type

str

populate(self, children: object)
populate(self, foreground: bool = False) None
Parameters

children (object) –

providerKey(self) str

Returns the provider key that created this item (e.g. “PostGIS”)

If key has a prefix “special:”, it marks that the item was not created with a provider, but manually. For example “special:Favorites”, “special:Home”

New in version 3.12.

Return type

str

receivers(self, PYQT_SIGNAL) int
refresh(self, children: object)

Refresh the items from a specified list of child items.

refresh(self)

Parameters

children (object) –

refreshConnections(self, providerKey: str = '')

Causes a data item provider to refresh all registered connections.

If providerKey is specified then only the matching provider will be refreshed. Otherwise, all providers will be refreshed (which is potentially very expensive!).

Parameters

providerKey (str = '') –

removeChildItem(self, child: QgsDataItem) QgsDataItem

Removes a child item and returns it without deleting it. Emits relevant signals to model as required.

Parameters

child (QgsDataItem) – child to remove

Return type

QgsDataItem

Returns

pointer to the removed item or None if no such item was found

rename(self, name: str) bool

Sets a new name for the item, and returns True if the item was successfully renamed.

Items which implement this method should return the QgsDataItem.Rename capability.

The default implementation does nothing.

Use QgsDataItemGuiProvider:

New in version 3.4.

Deprecated since version QGIS: 3.10

Parameters

name (str) –

Return type

bool

rowCount(self) int
Return type

int

sender(self) QObject
senderSignalIndex(self) int
setCapabilities(self, capabilities: Union[QgsDataItem.Capabilities, QgsDataItem.Capability])

Sets the capabilities for the data item.

See also

capabilities2()

Parameters

capabilities (Union[QgsDataItem.Capabilities) –

setCrs(self, crs: QgsCoordinateReferenceSystem) bool

Writes the selected crs into data source. The original data source will be modified when calling this method.

Deprecated since version QGIS: 3.6. This method is no longer used by QGIS and will be removed in QGIS 4.0.

Parameters

crs (QgsCoordinateReferenceSystem) –

Return type

bool

setIcon(self, icon: QIcon)
Parameters

icon (QIcon) –

setIconName(self, iconName: str)
Parameters

iconName (str) –

setName(self, name: str)

Sets the name of the item (the displayed text for the item).

See also

name()

Parameters

name (str) –

setParent(self, parent: QgsDataItem)

Set item parent and connect / disconnect parent to / from item signals. It does not add itself to parents children (mChildren)

Parameters

parent (QgsDataItem) –

setPath(self, path: str)
Parameters

path (str) –

setProviderKey(self, value: str)

Sets the provider key that created this item (e.g. “PostGIS”)

If key has a prefix “special:”, it marks that the item was not created with a provider, but manually. For example “special:Favorites”

New in version 3.12.

Parameters

value (str) –

setSortKey(self, key: Any)

Sets a custom sorting key for the item.

See also

sortKey()

New in version 3.0.

Parameters

key (Any) –

setState(self, state: QgsDataItem.State)

Set item state. It also take care about starting/stopping loading icon animation.

Parameters

state (QgsDataItem.State) –

New in version 2.8.

setToolTip(self, msg: str)
Parameters

msg (str) –

sortKey(self) Any

Returns the sorting key for the item. By default name() is returned, but setSortKey() can be used to set a custom sort key for the item.

Alternatively subclasses can override this method to return a custom sort key.

See also

setSortKey()

New in version 3.0.

Return type

Any

state(self) QgsDataItem.State

New in version 2.8.

Return type

QgsDataItem.State

stateChanged

stateChanged(self, item: QgsDataItem, oldState: QgsDataItem.State) [signal]

Parameters
timerEvent(self, QTimerEvent)
toolTip(self) str
Return type

str

type(self) QgsDataItem.Type
Return type

QgsDataItem.Type

updateIcon(self)

Will request a repaint of this icon.

New in version 3.0.