Subgroup: Layout
Class: QgsLayout¶
-
class
qgis.core.
QgsLayout
(project: QgsProject)¶ Bases:
PyQt5.QtWidgets.QGraphicsScene
,qgis._core.QgsExpressionContextGenerator
,qgis._core.QgsLayoutUndoObjectInterface
Construct a new layout linked to the specified
project
.If the layout is a “new” layout (as opposed to a layout which will restore a previous state from XML) then initializeDefaults() should be called on the new layout.
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.While the raw QGraphicsScene API can be used to render the contents of a QgsLayout to a QPainter, it is recommended to instead use a QgsLayoutExporter to handle rendering layouts instead. QgsLayoutExporter automatically takes care of the intracacies of preparing the layout and paint devices for correct exports, respecting various user settings such as the layout context DPI.
New in version 3.0: Methods
addItemsFromXml
Add items from an XML representation to the layout. addLayoutItem
Adds an item
to the layout.addMultiFrame
Adds a multiFrame
to the layout.childEvent
clear
Clears the layout. clone
Creates a clone of the layout. connectNotify
contextMenuEvent
convertFromLayoutUnits
Converts a length
measurement from the layout’s native units to a specified targetunit
.convertToLayoutUnits
Converts a measurement into the layout’s native units. createCommand
createExpressionContext
Creates an expression context relating to the layout’s current state. customEvent
customProperties
Return list of keys stored in custom properties for the layout. customProperty
Read a custom property from the layout. deselectAll
Clears any selected items in the layout. disconnectNotify
dragEnterEvent
dragLeaveEvent
dragMoveEvent
drawBackground
drawForeground
dropEvent
event
eventFilter
focusInEvent
focusNextPrevChild
focusOutEvent
gridSettings
Returns a reference to the layout’s grid settings, which stores settings relating to grid appearance, spacing and offsets. groupItems
Creates a new group from a list of layout items
and adds the group to the layout.guides
Returns a reference to the layout’s guide collection, which manages page snap guides. helpEvent
initializeDefaults
Initializes an empty layout, e. inputMethodEvent
isSignalConnected
itemById
Returns a layout item given its id
.itemByTemplateUuid
Returns the layout item with matching template uuid
unique identifier, or a None if a matching item could not be found.itemByUuid
Returns the layout item with matching uuid
unique identifier, or a None if a matching item could not be found.itemsModel
Returns the items model attached to the layout. keyPressEvent
keyReleaseEvent
layoutBounds
Calculates the bounds of all non-gui items in the layout. layoutItemAt
Returns the topmost layout item at a specified position
.loadFromTemplate
Load a layout template document
.lowerItem
Lowers an item
down the z-order.mouseDoubleClickEvent
mouseMoveEvent
mousePressEvent
mouseReleaseEvent
moveItemToBottom
Lowers an item
down to the bottom of the z-order.moveItemToTop
Raises an item
up to the top of the z-order.multiFrameByUuid
Returns the layout multiframe with matching uuid
unique identifier, or a None if a matching multiframe could not be found.multiFrames
Returns a list of multi frames contained in the layout. pageCollection
Returns a pointer to the layout’s page collection, which stores and manages page items in the layout. pageItemBounds
Returns the bounding box of the items contained on a specified page
.project
The project associated with the layout. raiseItem
Raises an item
up the z-order.readXml
Sets the collection’s state from a DOM element. receivers
referenceMap
Returns the map item which will be used to generate corresponding world files when the layout is exported. refresh
Forces the layout, and all items contained within it, to refresh. reloadSettings
Refreshes the layout when global layout related options change. removeCustomProperty
Remove a custom property from the layout. removeLayoutItem
Removes an item
from the layout.removeMultiFrame
Removes a multiFrame
from the layout (but does not delete it).renderContext
Returns a reference to the layout’s render context, which stores information relating to the current rendering settings for the layout. reportContext
Returns a reference to the layout’s report context, which stores information relating to the current reporting context for the layout. saveAsTemplate
Saves the layout as a template at the given file path
.selectedLayoutItems
Returns list of selected layout items. sender
senderSignalIndex
setCustomProperty
Set a custom property for the layout. setReferenceMap
Sets the map
item which will be used to generate corresponding world files when the layout is exported.setSelectedItem
Clears any selected items and sets item
as the current selection.setUnits
Sets the native measurement units
for the layout.snapper
Returns a reference to the layout’s snapper, which stores handles layout snap grids and lines and snapping points to the nearest matching point. timerEvent
undoStack
Returns a pointer to the layout’s undo stack, which manages undo/redo states for the layout and it’s associated objects. ungroupItems
Ungroups items by removing them from an item group
and removing the group from the layout.units
Returns the native units for the layout. updateBounds
Updates the scene bounds of the layout. updateZValues
Resets the z-values of items based on their position in the internal z order list. wheelEvent
writeXml
Returns the layout’s state encapsulated in a DOM element. Signals
changed
Is emitted when properties of the layout change. refreshed
Is emitted when the layout has been refreshed and items should also be refreshed and updated. selectedItemChanged
Emitted whenever the selected item changes. variablesChanged
Emitted whenever the expression variables stored in the layout have been changed. Attributes
UndoLayoutDpi
UndoNone
ZGrid
ZGuide
ZItem
ZMouseHandles
ZPage
ZSmartGuide
ZSnapIndicator
ZViewTool
-
class
UndoCommand
¶ Bases:
int
-
UndoLayoutDpi
= 0¶
-
UndoNone
= -1¶
-
ZGrid
= 9997¶
-
ZGuide
= 9998¶
-
ZItem
= 1¶
-
ZMouseHandles
= 10000¶
-
ZPage
= 0¶
-
ZSmartGuide
= 9999¶
-
ZSnapIndicator
= 10002¶
-
class
ZValues
¶ Bases:
int
-
ZViewTool
= 10001¶
-
addItemsFromXml
(self, parentElement: QDomElement, document: QDomDocument, context: QgsReadWriteContext, position: Union[QPointF, QPoint] = None, pasteInPlace: bool = False) → List[QgsLayoutItem]¶ Add items from an XML representation to the layout. Used for project file reading and pasting items from clipboard.
The
position
argument is optional, and if it is not specified the items will be restored to their original position from the XML serialization. If specified, the items will be positioned such that the top-left bounds of all added items is located at thisposition
.The
pasteInPlace
argument determines whether the serialized position should be respected, but remapped to the origin of the page corresponding to the page atposition
.A list of the newly added items is returned.
-
addLayoutItem
(self, item: QgsLayoutItem)¶ Adds an
item
to the layout. This should be called instead of the base class addItem() method. Ownership of the item is transferred to the layout.
-
addMultiFrame
(self, multiFrame: QgsLayoutMultiFrame)¶ Adds a
multiFrame
to the layout. The object is owned by the layout until removeMultiFrame() is called.See also
See also
-
changed
¶ Is emitted when properties of the layout change. This signal is only emitted for settings directly managed by the layout, and is not emitted when child items change. [signal]
-
childEvent
()¶
-
clear
(self)¶ Clears the layout.
Calling this method removes all items and pages from the layout.
-
clone
(self) → QgsLayout¶ Creates a clone of the layout. Ownership of the return layout is transferred to the caller.
-
connectNotify
()¶
-
contextMenuEvent
()¶
-
convertFromLayoutUnits
(self, length: float, unit: QgsUnitTypes.LayoutUnit) → QgsLayoutMeasurement¶ Converts a
length
measurement from the layout’s native units to a specified targetunit
.Returns: length of measurement in specified units See also
See also
convertFromLayoutUnits(self, size: QSizeF, unit: QgsUnitTypes.LayoutUnit) -> QgsLayoutSize Converts a
size
from the layout’s native units to a specified targetunit
.Returns: size of measurement in specified units See also
See also
convertFromLayoutUnits(self, point: Union[QPointF, QPoint], unit: QgsUnitTypes.LayoutUnit) -> QgsLayoutPoint Converts a
point
from the layout’s native units to a specified targetunit
.Returns: point in specified units See also
See also
-
convertToLayoutUnits
(self, measurement: QgsLayoutMeasurement) → float¶ Converts a measurement into the layout’s native units.
Returns: length of measurement in layout units See also
See also
convertToLayoutUnits(self, size: QgsLayoutSize) -> QSizeF Converts a size into the layout’s native units.
Returns: size of measurement in layout units See also
See also
convertToLayoutUnits(self, point: QgsLayoutPoint) -> QPointF Converts a
point
into the layout’s native units.Returns: point in layout units See also
See also
-
createCommand
(self, text: str, id: int = 0, parent: QUndoCommand = None) → QgsAbstractLayoutUndoCommand¶
-
createExpressionContext
(self) → QgsExpressionContext¶ Creates an expression context relating to the layout’s current state. The context includes scopes for global, project, layout and layout context properties.
-
customEvent
()¶
-
customProperties
(self) → List[str]¶ Return list of keys stored in custom properties for the layout.
See also
See also
See also
-
customProperty
(self, key: str, defaultValue: Any = None) → Any¶ Read a custom property from the layout.
Parameters: - key – property key
- defaultValue – default value to return if property with matching key does not exist
Returns: value of matching property
See also
See also
See also
-
deselectAll
(self)¶ Clears any selected items in the layout.
Call this method rather than QGraphicsScene.clearSelection, as the latter does not correctly emit signals to allow the layout’s model to update.
-
disconnectNotify
()¶
-
dragEnterEvent
()¶
-
dragLeaveEvent
()¶
-
dragMoveEvent
()¶
-
drawBackground
()¶
-
drawForeground
()¶
-
dropEvent
()¶
-
event
()¶
-
eventFilter
()¶
-
focusInEvent
()¶
-
focusNextPrevChild
()¶
-
focusOutEvent
()¶
-
gridSettings
(self) → QgsLayoutGridSettings¶ Returns a reference to the layout’s grid settings, which stores settings relating to grid appearance, spacing and offsets.
-
groupItems
(self, items: Iterable[QgsLayoutItem]) → QgsLayoutItemGroup¶ Creates a new group from a list of layout
items
and adds the group to the layout. If grouping was not possible, a None will be returned.See also
-
guides
(self) → QgsLayoutGuideCollection¶ Returns a reference to the layout’s guide collection, which manages page snap guides.
-
helpEvent
()¶
-
initializeDefaults
(self)¶ Initializes an empty layout, e.g. by adding a default page to the layout. This should be called after creating a new layout.
-
inputMethodEvent
()¶
-
isSignalConnected
()¶
-
itemById
(self, id: str) → QgsLayoutItem¶ Returns a layout item given its
id
. Since item IDs are not necessarely unique, this function returns the first matching item found.See also
-
itemByTemplateUuid
(self, uuid: str) → QgsLayoutItem¶ Returns the layout item with matching template
uuid
unique identifier, or a None if a matching item could not be found. Unlike itemByUuid(), this method ONLY checks template UUIDs for a match.Template UUIDs are valid only for items which have been added to an existing layout from a template. In this case the template UUID is the original item UUID at the time the template was created, vs the item’s uuid() which returns the current instance of the item’s unique identifier.
Note that template UUIDs are only available while a layout is being restored from XML.
See also
See also
See also
-
itemByUuid
(self, uuid: str, includeTemplateUuids: bool = False) → QgsLayoutItem¶ Returns the layout item with matching
uuid
unique identifier, or a None if a matching item could not be found.If
includeTemplateUuids
is true, then item’s template UUID will also be tested when trying to match the uuid. This may differ from the item’s UUID for items which have been added to an existing layout from a template. In this case the template UUID returns the original item UUID at the time the template was created, vs the item’s uuid() which returns the current instance of the item’s unique identifier. Note that template UUIDs are only available while a layout is being restored from XML.See also
See also
See also
-
itemsModel
(self) → QgsLayoutModel¶ Returns the items model attached to the layout.
-
keyPressEvent
()¶
-
keyReleaseEvent
()¶
-
layoutBounds
(self, ignorePages: bool = False, margin: float = 0) → QRectF¶ Calculates the bounds of all non-gui items in the layout. Ignores snap lines, mouse handles and other cosmetic items.
Parameters: - ignorePages – set to true to ignore page items
- margin – optional marginal (in percent, e.g., 0.05 = 5% ) to add around items
Returns: layout bounds, in layout units.
See also
-
layoutItemAt
(self, position: Union[QPointF, QPoint], ignoreLocked: bool = False) → QgsLayoutItem¶ Returns the topmost layout item at a specified
position
. Ignores paper items. IfignoreLocked
is set to true any locked items will be ignored.layoutItemAt(self, position: Union[QPointF, QPoint], belowItem: QgsLayoutItem, ignoreLocked: bool = False) -> QgsLayoutItem Returns the topmost layout item at a specified
position
which is below a specifieditem
. Ignores paper items. IfignoreLocked
is set to true any locked items will be ignored.
-
loadFromTemplate
(self, document: QDomDocument, context: QgsReadWriteContext, clearExisting: bool = True) → Tuple[List[QgsLayoutItem], bool]¶ Load a layout template
document
.By default this method will clear all items from the existing layout and real all layout settings from the template. Setting
clearExisting
to false will only add new items from the template, without overwriting the existing items or layout settings.If
ok
is specified, it will be set to true if the load was successful.Returns a list of loaded items.
-
lowerItem
(self, item: QgsLayoutItem, deferUpdate: bool = False) → bool¶ Lowers an
item
down the z-order. Returns true if the item was successfully lowered.If
deferUpdate
is true, the scene will not be visibly updated to reflect the new stacking order. This allows multiple raiseItem() calls to be made in sequence without the cost of updating the scene for each one.See also
See also
-
mouseDoubleClickEvent
()¶
-
mouseMoveEvent
()¶
-
mousePressEvent
()¶
-
mouseReleaseEvent
()¶
-
moveItemToBottom
(self, item: QgsLayoutItem, deferUpdate: bool = False) → bool¶ Lowers an
item
down to the bottom of the z-order. Returns true if the item was successfully lowered. IfdeferUpdate
is true, the scene will not be visibly updated to reflect the new stacking order. This allows multiple raiseItem() calls to be made in sequence without the cost of updating the scene for each one.See also
See also
-
moveItemToTop
(self, item: QgsLayoutItem, deferUpdate: bool = False) → bool¶ Raises an
item
up to the top of the z-order. Returns true if the item was successfully raised.If
deferUpdate
is true, the scene will not be visibly updated to reflect the new stacking order. This allows multiple raiseItem() calls to be made in sequence without the cost of updating the scene for each one.See also
See also
-
multiFrameByUuid
(self, uuid: str, includeTemplateUuids: bool = False) → QgsLayoutMultiFrame¶ Returns the layout multiframe with matching
uuid
unique identifier, or a None if a matching multiframe could not be found.If
includeTemplateUuids
is true, then the multiframe’sQgsLayoutMultiFrame.templateUuid()
will also be tested when trying to match the uuid. Template UUIDs are valid only for items which have been added to an existing layout from a template. In this case the template UUID is the original item UUID at the time the template was created, vs the item’s uuid() which returns the current instance of the item’s unique identifier. Note that template UUIDs are only available while a layout is being restored from XML.See also
-
multiFrames
(self) → object¶ Returns a list of multi frames contained in the layout.
See also
See also
-
pageCollection
(self) → QgsLayoutPageCollection¶ Returns a pointer to the layout’s page collection, which stores and manages page items in the layout.
-
pageItemBounds
(self, page: int, visibleOnly: bool = False) → QRectF¶ Returns the bounding box of the items contained on a specified
page
. A page number of 0 represents the first page in the layout.Set
visibleOnly
to true to only include visible items.The returned bounds are in layout units.
See also
-
project
(self) → QgsProject¶ The project associated with the layout. Used to get access to layers, map themes, relations and various other bits. It is never null.
-
raiseItem
(self, item: QgsLayoutItem, deferUpdate: bool = False) → bool¶ Raises an
item
up the z-order. Returns true if the item was successfully raised.If
deferUpdate
is true, the scene will not be visibly updated to reflect the new stacking order. This allows multiple raiseItem() calls to be made in sequence without the cost of updating the scene for each one.See also
See also
-
readXml
(self, layoutElement: QDomElement, document: QDomDocument, context: QgsReadWriteContext) → bool¶ Sets the collection’s state from a DOM element.
layoutElement
is the DOM node corresponding to the layout.See also
-
receivers
()¶
-
referenceMap
(self) → QgsLayoutItemMap¶ Returns the map item which will be used to generate corresponding world files when the layout is exported. If no map was explicitly set via setReferenceMap(), the largest map in the layout will be returned (or None if there are no maps in the layout).
See also
See also
generateWorldFile()
-
refresh
(self)¶ Forces the layout, and all items contained within it, to refresh. For instance, this causes maps to redraw and rebuild cached images, html items to reload their source url, and attribute tables to refresh their contents. Calling this also triggers a recalculation of all data defined attributes within the layout.
See also
-
refreshed
¶ Is emitted when the layout has been refreshed and items should also be refreshed and updated. [signal]
-
reloadSettings
(self)¶ Refreshes the layout when global layout related options change.
-
removeCustomProperty
(self, key: str)¶ Remove a custom property from the layout.
Parameters: key – property key See also
See also
See also
-
removeLayoutItem
(self, item: QgsLayoutItem)¶ Removes an
item
from the layout. This should be called instead of the base class removeItem() method. The item will also be deleted.
-
removeMultiFrame
(self, multiFrame: QgsLayoutMultiFrame)¶ Removes a
multiFrame
from the layout (but does not delete it).See also
See also
-
renderContext
(self) → QgsLayoutRenderContext¶ Returns a reference to the layout’s render context, which stores information relating to the current rendering settings for the layout.
-
reportContext
(self) → QgsLayoutReportContext¶ Returns a reference to the layout’s report context, which stores information relating to the current reporting context for the layout.
-
saveAsTemplate
(self, path: str, context: QgsReadWriteContext) → bool¶ Saves the layout as a template at the given file
path
. Returns true if save was successful.See also
-
selectedItemChanged
¶ Emitted whenever the selected item changes. If None, no item is selected. [signal]
-
selectedLayoutItems
(self, includeLockedItems: bool = True) → List[QgsLayoutItem]¶ Returns list of selected layout items.
If
includeLockedItems
is set to true, then locked items will also be included in the returned list.
-
sender
()¶
-
senderSignalIndex
()¶
-
setCustomProperty
(self, key: str, value: Any)¶ Set a custom property for the layout.
Parameters: - key – property key. If a property with the same key already exists it will be overwritten.
- value – property value
See also
See also
See also
-
setReferenceMap
(self, map: QgsLayoutItemMap)¶ Sets the
map
item which will be used to generate corresponding world files when the layout is exported.See also
See also
setGenerateWorldFile()
-
setSelectedItem
(self, item: QgsLayoutItem)¶ Clears any selected items and sets
item
as the current selection.
-
setUnits
(self, units: QgsUnitTypes.LayoutUnit)¶ Sets the native measurement
units
for the layout. These also form the default unit for measurements for the layout.See also
See also
-
snapper
(self) → QgsLayoutSnapper¶ Returns a reference to the layout’s snapper, which stores handles layout snap grids and lines and snapping points to the nearest matching point.
-
timerEvent
()¶
-
undoStack
(self) → QgsLayoutUndoStack¶ Returns a pointer to the layout’s undo stack, which manages undo/redo states for the layout and it’s associated objects.
-
ungroupItems
(self, group: QgsLayoutItemGroup) → List[QgsLayoutItem]¶ Ungroups items by removing them from an item
group
and removing the group from the layout. Child items will remain in the layout and will not be deleted.Returns a list of the items removed from the group, or an empty list if ungrouping was not successful.
See also
-
units
(self) → QgsUnitTypes.LayoutUnit¶ Returns the native units for the layout.
See also
See also
-
updateBounds
(self)¶ Updates the scene bounds of the layout.
-
updateZValues
(self, addUndoCommands: bool = True)¶ Resets the z-values of items based on their position in the internal z order list. This should be called after any stacking changes which deferred z-order updates.
-
variablesChanged
¶ Emitted whenever the expression variables stored in the layout have been changed. [signal]
-
wheelEvent
()¶
-
class