QLayoutItem#

The QLayoutItem class provides an abstract item that a QLayout manipulates. More

Inheritance diagram of PySide6.QtWidgets.QLayoutItem

Inherited by: QSpacerItem, QWidgetItem, QLayout, QStackedLayout, QGridLayout, QFormLayout, QBoxLayout, QVBoxLayout, QHBoxLayout

Synopsis#

Functions#

Virtual functions#

Note

This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE

Detailed Description#

This is used by custom layouts.

Pure virtual functions are provided to return information about the layout, including, sizeHint() , minimumSize() , maximumSize() and expanding().

The layout’s geometry can be set and retrieved with setGeometry() and geometry() , and its alignment with setAlignment() and alignment() .

isEmpty() returns whether the layout item is empty. If the concrete item is a QWidget , it can be retrieved using widget() . Similarly for layout() and spacerItem() .

Some layouts have width and height interdependencies. These can be expressed using hasHeightForWidth() , heightForWidth() , and minimumHeightForWidth() . For more explanation see the Qt Quarterly article Trading Height for Width .

See also

QLayout

class PySide6.QtWidgets.QLayoutItem([alignment=Qt.Alignment()])#
Parameters:

alignmentAlignment

Constructs a layout item with an alignment. Not all subclasses support alignment.

PySide6.QtWidgets.QLayoutItem.align#
PySide6.QtWidgets.QLayoutItem.alignment()#
Return type:

Alignment

Returns the alignment of this item.

See also

setAlignment()

PySide6.QtWidgets.QLayoutItem.controlTypes()#
Return type:

ControlTypes

Returns the control type(s) for the layout item. For a QWidgetItem , the control type comes from the widget’s size policy; for a QLayoutItem , the control types is derived from the layout’s contents.

See also

controlType()

abstract PySide6.QtWidgets.QLayoutItem.expandingDirections()#
Return type:

Orientations

Returns whether this layout item can make use of more space than sizeHint() . A value of Vertical or Horizontal means that it wants to grow in only one dimension, whereas Vertical | Horizontal means that it wants to grow in both dimensions.

abstract PySide6.QtWidgets.QLayoutItem.geometry()#
Return type:

PySide6.QtCore.QRect

Returns the rectangle covered by this layout item.

See also

setGeometry()

PySide6.QtWidgets.QLayoutItem.hasHeightForWidth()#
Return type:

bool

Returns true if this layout’s preferred height depends on its width; otherwise returns false. The default implementation returns false.

Reimplement this function in layout managers that support height for width.

PySide6.QtWidgets.QLayoutItem.heightForWidth(arg__1)#
Parameters:

arg__1 – int

Return type:

int

Warning

This section contains snippets that were automatically translated from C++ to Python and may contain errors.

Returns the preferred height for this layout item, given the width, which is not used in this default implementation.

The default implementation returns -1, indicating that the preferred height is independent of the width of the item. Using the function hasHeightForWidth() will typically be much faster than calling this function and testing for -1.

Reimplement this function in layout managers that support height for width. A typical implementation will look like this:

def heightForWidth(self, int w):

    if cache_dirty or cached_width != w:
        that = _cast<MyLayout *>(self)
        h = calculateHeightForWidth(w)
        that.cached_hfw = h
        return h

    return cached_hfw

Caching is strongly recommended; without it layout will take exponential time.

PySide6.QtWidgets.QLayoutItem.invalidate()#

Invalidates any cached information in this layout item.

abstract PySide6.QtWidgets.QLayoutItem.isEmpty()#
Return type:

bool

Implemented in subclasses to return whether this item is empty, i.e. whether it contains any widgets.

PySide6.QtWidgets.QLayoutItem.layout()#
Return type:

PySide6.QtWidgets.QLayout

If this item is a QLayout , it is returned as a QLayout ; otherwise None is returned. This function provides type-safe casting.

abstract PySide6.QtWidgets.QLayoutItem.maximumSize()#
Return type:

PySide6.QtCore.QSize

Implemented in subclasses to return the maximum size of this item.

PySide6.QtWidgets.QLayoutItem.minimumHeightForWidth(arg__1)#
Parameters:

arg__1 – int

Return type:

int

Returns the minimum height this widget needs for the given width, w. The default implementation simply returns heightForWidth (w).

abstract PySide6.QtWidgets.QLayoutItem.minimumSize()#
Return type:

PySide6.QtCore.QSize

Implemented in subclasses to return the minimum size of this item.

PySide6.QtWidgets.QLayoutItem.setAlignment(a)#
Parameters:

aAlignment

Sets the alignment of this item to alignment.

Note

Item alignment is only supported by QLayoutItem subclasses where it would have a visual effect. Except for QSpacerItem , which provides blank space for layouts, all public Qt classes that inherit QLayoutItem support item alignment.

See also

alignment()

abstract PySide6.QtWidgets.QLayoutItem.setGeometry(arg__1)#
Parameters:

arg__1PySide6.QtCore.QRect

Implemented in subclasses to set this item’s geometry to r.

See also

geometry()

abstract PySide6.QtWidgets.QLayoutItem.sizeHint()#
Return type:

PySide6.QtCore.QSize

Implemented in subclasses to return the preferred size of this item.

PySide6.QtWidgets.QLayoutItem.spacerItem()#
Return type:

PySide6.QtWidgets.QSpacerItem

If this item is a QSpacerItem , it is returned as a QSpacerItem ; otherwise None is returned. This function provides type-safe casting.

See also

layout() widget()

PySide6.QtWidgets.QLayoutItem.widget()#
Return type:

PySide6.QtWidgets.QWidget

If this item manages a QWidget , returns that widget. Otherwise, None is returned.

Note

While the functions layout() and spacerItem() perform casts, this function returns another object: QLayout and QSpacerItem inherit QLayoutItem , while QWidget does not.