Class: QgsDataSourceSelectWidget

class qgis.gui.QgsDataSourceSelectWidget

Bases: QgsPanelWidget

The QgsDataSourceSelectWidget class embeds the browser view to select an existing data source.

By default any layer type can be chosen, the valid layer type can be restricted by setting a layer type filter with setLayerTypeFilter(layerType) or by activating the filter directly from the constructor.

To retrieve the selected data source, uri() can be called and it will return a (possibly invalid) QgsMimeDataUtils.Uri.

New in version 3.14.

QgsDataSourceSelectWidget(browserModel: QgsBrowserGuiModel = None, setFilterByLayerType: bool = False, layerType: QgsMapLayerType = QgsMapLayerType.VectorLayer, parent: QWidget = None) Constructs a QgsDataSourceSelectWidget, optionally filtering by layer type

actionEvent(self, QActionEvent)
changeEvent(self, QEvent)
childEvent(self, QChildEvent)
closeEvent(self, QCloseEvent)
connectNotify(self, QMetaMethod)
contextMenuEvent(self, QContextMenuEvent)
create(self, window: sip.voidptr = 0, initializeWindow: bool = True, destroyOldWindow: bool = True)
customEvent(self, QEvent)
destroy(self, destroyWindow: bool = True, destroySubWindows: bool = True)
disconnectNotify(self, QMetaMethod)
dragEnterEvent(self, QDragEnterEvent)
dragLeaveEvent(self, QDragLeaveEvent)
dragMoveEvent(self, QDragMoveEvent)
dropEvent(self, QDropEvent)
enterEvent(self, QEvent)
event(self, QEvent) bool
focusInEvent(self, QFocusEvent)
focusNextChild(self) bool
focusNextPrevChild(self, bool) bool
focusOutEvent(self, QFocusEvent)
focusPreviousChild(self) bool
hideEvent(self, QHideEvent)
initPainter(self, QPainter)
inputMethodEvent(self, QInputMethodEvent)
isSignalConnected(self, QMetaMethod) bool

Emitted when an item is triggered, e.g. via a double-click. [signal]


uri (QgsMimeDataUtils.Uri) –

keyPressEvent(self, event: QKeyEvent)

Overridden key press event to handle the esc event on the widget.


event – The key event

keyReleaseEvent(self, QKeyEvent)
leaveEvent(self, QEvent)
metric(self, QPaintDevice.PaintDeviceMetric) int
mouseDoubleClickEvent(self, QMouseEvent)
mouseMoveEvent(self, QMouseEvent)
mousePressEvent(self, QMouseEvent)
mouseReleaseEvent(self, QMouseEvent)
moveEvent(self, QMoveEvent)
nativeEvent(self, Union[QByteArray, bytes, bytearray], sip.voidptr) Tuple[bool, int]
paintEvent(self, QPaintEvent)
receivers(self, PYQT_SIGNAL) int
resizeEvent(self, QResizeEvent)

Emitted when the current selection changes in the widget. [signal]

sender(self) QObject
senderSignalIndex(self) int
setCaseSensitive(self, caseSensitive: bool)

Sets filter case sensitivity


caseSensitive (bool) –

setDescription(self, description: str)

Sets a description label


description (str) – a description string


the description will be displayed at the bottom of the dialog

New in version 3.8.


Apply filter to the model

setFilterSyntax(self, QAction)

Sets filter syntax

setLayerTypeFilter(self, layerType: QgsMapLayerType)

Sets layer type filter to layerType and activates the filtering


layerType (QgsMapLayerType) –

sharedPainter(self) QPainter
showEvent(self, e: QShowEvent)

Scroll to last selected index and expand it’s children


e (QShowEvent) –

showFilterWidget(self, visible: bool)

Show/hide filter widget


visible (bool) –

tabletEvent(self, QTabletEvent)
timerEvent(self, QTimerEvent)
uri(self) QgsMimeDataUtils.Uri

Returns the (possibly invalid) uri of the selected data source

Return type



This signal is emitted whenever the validation status of the widget changes.


isValid (bool) – True if the current status of the widget is valid [signal]

wheelEvent(self, QWheelEvent)