QGIS API Documentation  3.8.0-Zanzibar (11aff65)
Public Types | Public Slots | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
QgsLayoutTable Class Referenceabstract

A class to display a table in the print layout, and allow the table to span over multiple frames. More...

#include <qgslayouttable.h>

Inheritance diagram for QgsLayoutTable:
Inheritance graph
[legend]

Public Types

enum  CellStyleGroup {
  OddColumns, EvenColumns, OddRows, EvenRows,
  FirstColumn, LastColumn, HeaderRow, FirstRow,
  LastRow
}
 Row or column groups for cell styling. More...
 
enum  EmptyTableMode { HeadersOnly = 0, HideTable, ShowMessage }
 Controls how empty tables are displayed. More...
 
enum  HeaderHAlignment { FollowColumn, HeaderLeft, HeaderCenter, HeaderRight }
 Controls how headers are horizontally aligned in a table. More...
 
enum  HeaderMode { FirstFrame = 0, AllFrames, NoHeaders }
 Controls where headers are shown in the table. More...
 
enum  WrapBehavior { TruncateText = 0, WrapText }
 Controls how long strings in the table are handled. More...
 
- Public Types inherited from QgsLayoutMultiFrame
enum  ResizeMode { UseExistingFrames = 0, ExtendToNextPage, RepeatOnEveryPage, RepeatUntilFinished }
 Specifies the behavior for creating new frames to fit the multiframe's content. More...
 
enum  UndoCommand {
  UndoHtmlBreakDistance, UndoHtmlSource, UndoHtmlStylesheet, UndoTableCellStyle,
  UndoTableMaximumFeatures, UndoTableMargin, UndoTableHeaderFontColor, UndoTableContentFontColor,
  UndoTableGridStrokeWidth, UndoTableGridColor, UndoTableBackgroundColor, UndoNone = -1
}
 Multiframe item undo commands, used for collapsing undo commands. More...
 
- Public Types inherited from QgsLayoutObject
enum  DataDefinedProperty {
  NoProperty = 0, AllProperties, TestProperty, PresetPaperSize,
  PaperWidth, PaperHeight, NumPages, PaperOrientation,
  PageNumber, PositionX, PositionY, ItemWidth,
  ItemHeight, ItemRotation, Transparency, Opacity,
  BlendMode, ExcludeFromExports, FrameColor, BackgroundColor,
  MapRotation, MapScale, MapXMin, MapYMin,
  MapXMax, MapYMax, MapAtlasMargin, MapLayers,
  MapStylePreset, MapLabelMargin, PictureSource, PictureSvgBackgroundColor,
  PictureSvgStrokeColor, PictureSvgStrokeWidth, SourceUrl, LegendTitle,
  LegendColumnCount, ScalebarFillColor, ScalebarFillColor2, ScalebarLineColor,
  ScalebarLineWidth, AttributeTableSourceLayer
}
 Data defined properties for different item types. More...
 
enum  PropertyValueType { EvaluatedValue = 0, OriginalValue }
 Specifies whether the value returned by a function should be the original, user set value, or the current evaluated value for the property. More...
 

Public Slots

void recalculateFrameSizes () override
 
void refresh () override
 
virtual void refreshAttributes ()
 Refreshes the contents shown in the table by querying for new data. More...
 
- Public Slots inherited from QgsLayoutMultiFrame
void recalculateFrameRects ()
 Forces a recalculation of all the associated frame's scene rectangles. More...
 
virtual void recalculateFrameSizes ()
 Recalculates the portion of the multiframe item which is shown in each of its component frames. More...
 
void refresh () override
 Refreshes the multiframe, causing a recalculation of any property overrides. More...
 
virtual void refreshDataDefinedProperty (QgsLayoutObject::DataDefinedProperty property=QgsLayoutObject::AllProperties)
 Refreshes a data defined property for the multi frame by reevaluating the property's value and redrawing the item with this new value. More...
 
void update ()
 Forces a redraw of all child frames. More...
 
- Public Slots inherited from QgsLayoutObject
virtual void refresh ()
 Refreshes the object, causing a recalculation of any property overrides. More...
 

Public Member Functions

 QgsLayoutTable (QgsLayout *layout)
 Constructor for QgsLayoutTable, belonging to the specified layout. More...
 
 ~QgsLayoutTable () override
 
QColor backgroundColor () const
 Returns the color used for the background of the table. More...
 
double cellMargin () const
 Returns the margin distance between cell borders and their contents in mm. More...
 
const QgsLayoutTableStylecellStyle (CellStyleGroup group) const
 Returns the cell style for a cell group. More...
 
QgsLayoutTableColumnscolumns ()
 Returns a reference to the list of QgsLayoutTableColumns shown in the table. More...
 
QFont contentFont () const
 Returns the font used to draw text in table body cells. More...
 
QColor contentFontColor () const
 Returns the color used to draw text in table body cells. More...
 
QgsLayoutTableContentscontents ()
 Returns the current contents of the table. More...
 
EmptyTableMode emptyTableBehavior () const
 Returns the behavior mode for empty tables. More...
 
QString emptyTableMessage () const
 Returns the message for empty tables with no content rows. More...
 
QSizeF fixedFrameSize (int frameIndex=-1) const override
 Returns the fixed size for a frame, if desired. More...
 
virtual bool getTableContents (QgsLayoutTableContents &contents)=0
 Fetches the contents used for the cells in the table. More...
 
QColor gridColor () const
 Returns the color used for grid lines in the table. More...
 
double gridStrokeWidth () const
 Returns the width of grid lines in the table in mm. More...
 
QFont headerFont () const
 Returns the font used to draw header text in the table. More...
 
QColor headerFontColor () const
 Returns the color used to draw header text in the table. More...
 
HeaderHAlignment headerHAlignment () const
 Returns the horizontal alignment for table headers. More...
 
virtual QMap< int, QString > headerLabels () const
 Returns the text used in the column headers for the table. More...
 
HeaderMode headerMode () const
 Returns the display mode for headers in the table. More...
 
bool horizontalGrid () const
 Returns whether the grid's horizontal lines are drawn in the table. More...
 
QSizeF minFrameSize (int frameIndex=-1) const override
 Returns the minimum size for a frames, if desired. More...
 
bool readPropertiesFromElement (const QDomElement &itemElem, const QDomDocument &doc, const QgsReadWriteContext &context) override
 Sets multiframe state from a DOM element. More...
 
void render (QgsLayoutItemRenderContext &context, const QRectF &renderExtent, int frameIndex) override
 Renders a portion of the multiframe's content into a render context. More...
 
void setBackgroundColor (const QColor &color)
 Sets the color used for background of table. More...
 
void setCellMargin (double margin)
 Sets the margin distance in mm between cell borders and their contents. More...
 
void setCellStyle (CellStyleGroup group, const QgsLayoutTableStyle &style)
 Sets the cell style for a cell group. More...
 
void setColumns (const QgsLayoutTableColumns &columns)
 Replaces the columns in the table with a specified list of QgsLayoutTableColumns. More...
 
void setContentFont (const QFont &font)
 Sets the font used to draw text in table body cells. More...
 
void setContentFontColor (const QColor &color)
 Sets the color used to draw text in table body cells. More...
 
void setEmptyTableBehavior (EmptyTableMode mode)
 Sets the behavior mode for empty tables with no content rows. More...
 
void setEmptyTableMessage (const QString &message)
 Sets the message for empty tables with no content rows. More...
 
void setGridColor (const QColor &color)
 Sets the color used for grid lines in the table. More...
 
void setGridStrokeWidth (double width)
 Sets the width in mm for grid lines in the table. More...
 
void setHeaderFont (const QFont &font)
 Sets the font used to draw header text in the table. More...
 
void setHeaderFontColor (const QColor &color)
 Sets the color used to draw header text in the table. More...
 
void setHeaderHAlignment (HeaderHAlignment alignment)
 Sets the horizontal alignment for table headers. More...
 
void setHeaderMode (HeaderMode mode)
 Sets the display mode for headers in the table. More...
 
void setHorizontalGrid (bool horizontalGrid)
 Sets whether the grid's horizontal lines should be drawn in the table. More...
 
void setShowEmptyRows (bool showEmpty)
 Sets whether empty rows should be drawn. More...
 
void setShowGrid (bool showGrid)
 Sets whether grid lines should be drawn in the table. More...
 
void setVerticalGrid (bool verticalGrid)
 Sets whether the grid's vertical lines should be drawn in the table. More...
 
void setWrapBehavior (WrapBehavior behavior)
 Sets the wrap behavior for the table, which controls how text within cells is automatically wrapped. More...
 
bool showEmptyRows () const
 Returns whether empty rows are drawn in the table. More...
 
bool showGrid () const
 Returns whether grid lines are drawn in the table. More...
 
QSizeF totalSize () const override
 Returns the total size of the multiframe's content, in layout units. More...
 
bool verticalGrid () const
 Returns whether the grid's vertical lines are drawn in the table. More...
 
WrapBehavior wrapBehavior () const
 Returns the wrap behavior for the table, which controls how text within cells is automatically wrapped. More...
 
bool writePropertiesToElement (QDomElement &elem, QDomDocument &doc, const QgsReadWriteContext &context) const override
 Stores multiframe state within an XML DOM element. More...
 
- Public Member Functions inherited from QgsLayoutMultiFrame
 QgsLayoutMultiFrame (QgsLayout *layout)
 Construct a new multiframe item, attached to the specified layout. More...
 
 ~QgsLayoutMultiFrame () override
 
virtual void addFrame (QgsLayoutFrame *frame, bool recalcFrameSizes=true)
 Adds a frame to the multiframe. More...
 
void beginCommand (const QString &commandText, UndoCommand command=UndoNone)
 Starts new undo command for this item. More...
 
void cancelCommand ()
 Cancels the current item command and discards it. More...
 
QgsAbstractLayoutUndoCommandcreateCommand (const QString &text, int id, QUndoCommand *parent=nullptr) override
 Creates a new layout undo command with the specified text and parent. More...
 
QgsLayoutFramecreateNewFrame (QgsLayoutFrame *currentFrame, QPointF pos, QSizeF size)
 Creates a new frame and adds it to the multi frame and layout. More...
 
void deleteFrames ()
 Removes and deletes all child frames. More...
 
virtual QString displayName () const
 Returns the multiframe display name. More...
 
void endCommand ()
 Completes the current item command and push it onto the layout's undo stack. More...
 
virtual void finalizeRestoreFromXml ()
 Called after all pending items have been restored from XML. More...
 
virtual double findNearbyPageBreak (double yPos)
 Finds the optimal position to break a frame at. More...
 
QgsLayoutFrameframe (int index) const
 Returns the child frame at a specified index from the multiframe. More...
 
int frameCount () const
 Returns the number of frames associated with this multiframe. More...
 
int frameIndex (QgsLayoutFrame *frame) const
 Returns the index of a frame within the multiframe. More...
 
QList< QgsLayoutFrame * > frames () const
 Returns a list of all child frames for this multiframe. More...
 
virtual QIcon icon () const
 Returns the item's icon. More...
 
bool readXml (const QDomElement &itemElement, const QDomDocument &document, const QgsReadWriteContext &context, bool includeFrames=false)
 Sets the item state from a DOM element. More...
 
void removeFrame (int index, bool removeEmptyPages=false)
 Removes a frame by index from the multiframe. More...
 
ResizeMode resizeMode () const
 Returns the resize mode for the multiframe. More...
 
void setResizeMode (ResizeMode mode)
 Sets the resize mode for the multiframe, and recalculates frame sizes to match. More...
 
virtual int type () const =0
 Returns unique multiframe type id. More...
 
QString uuid () const
 Returns the multiframe identification string. More...
 
bool writeXml (QDomElement &parentElement, QDomDocument &document, const QgsReadWriteContext &context, bool includeFrames=false) const
 Stores the multiframe state in a DOM element. More...
 
- Public Member Functions inherited from QgsLayoutObject
 QgsLayoutObject (QgsLayout *layout)
 Constructor for QgsLayoutObject, with the specified parent layout. More...
 
QgsExpressionContext createExpressionContext () const override
 Creates an expression context relating to the objects' current state. More...
 
QStringList customProperties () const
 Returns list of keys stored in custom properties for the object. More...
 
QVariant customProperty (const QString &key, const QVariant &defaultValue=QVariant()) const
 Read a custom property from the object. More...
 
QgsPropertyCollectiondataDefinedProperties ()
 Returns a reference to the object's property collection, used for data defined overrides. More...
 
const QgsPropertyCollectiondataDefinedProperties () const
 Returns a reference to the object's property collection, used for data defined overrides. More...
 
const QgsLayoutlayout () const
 Returns the layout the object is attached to. More...
 
QgsLayoutlayout ()
 Returns the layout the object is attached to. More...
 
void removeCustomProperty (const QString &key)
 Remove a custom property from the object. More...
 
void setCustomProperty (const QString &key, const QVariant &value)
 Set a custom property for the object. More...
 
void setDataDefinedProperties (const QgsPropertyCollection &collection)
 Sets the objects's property collection, used for data defined overrides. More...
 
- Public Member Functions inherited from QgsExpressionContextGenerator
virtual ~QgsExpressionContextGenerator ()=default
 
- Public Member Functions inherited from QgsLayoutUndoObjectInterface
virtual ~QgsLayoutUndoObjectInterface ()=default
 Destructor for QgsLayoutUndoObjectInterface. More...
 

Protected Member Functions

virtual bool calculateMaxColumnWidths ()
 Calculates the maximum width of text shown in columns. More...
 
virtual bool calculateMaxRowHeights ()
 Calculates the maximum height of text shown in rows. More...
 
bool contentsContainsRow (const QgsLayoutTableContents &contents, const QgsLayoutTableRow &row) const
 Checks whether a table contents contains a given row. More...
 
void drawHorizontalGridLines (QPainter *painter, int firstRow, int lastRow, bool drawHeaderLines) const
 Draws the horizontal grid lines for the table. More...
 
void drawVerticalGridLines (QPainter *painter, const QMap< int, double > &maxWidthMap, int firstRow, int lastRow, bool hasHeader, bool mergeCells=false) const
 Draws the vertical grid lines for the table. More...
 
void recalculateTableSize ()
 Recalculates and updates the size of the table and all table frames. More...
 
QPair< int, int > rowRange (int frameIndex) const
 Calculates a range of rows which should be visible in a given frame. More...
 
int rowsVisible (double frameHeight, int firstRow, bool includeHeader, bool includeEmptyRows) const
 Calculates how many content rows would be visible within a frame of the specified height. More...
 
int rowsVisible (int frameIndex, int firstRow, bool includeEmptyRows) const
 Calculates how many content rows are visible within a given frame. More...
 
double totalHeight ()
 Returns total height of table contents. More...
 
double totalWidth ()
 Returns total width of table contents. More...
 
- Protected Member Functions inherited from QgsLayoutObject
bool readObjectPropertiesFromElement (const QDomElement &parentElement, const QDomDocument &document, const QgsReadWriteContext &context)
 Sets object properties from a DOM element. More...
 
bool writeObjectPropertiesToElement (QDomElement &parentElement, QDomDocument &document, const QgsReadWriteContext &context) const
 Stores object properties within an XML DOM element. More...
 

Protected Attributes

QColor mBackgroundColor = Qt::white
 Color for table background. More...
 
double mCellMargin = 1.0
 Margin between cell borders and cell text. More...
 
QMap< CellStyleGroup, QgsLayoutTableStyle *> mCellStyles
 
QgsLayoutTableColumns mColumns
 Columns to show in table. More...
 
QFont mContentFont
 Table contents font. More...
 
QColor mContentFontColor = Qt::black
 Table contents font color. More...
 
QString mEmptyTableMessage
 String to show in empty tables. More...
 
EmptyTableMode mEmptyTableMode = HeadersOnly
 Behavior for empty tables. More...
 
QColor mGridColor = Qt::black
 Color for grid lines. More...
 
double mGridStrokeWidth = 0.5
 Width of grid lines. More...
 
QFont mHeaderFont
 Header font. More...
 
QColor mHeaderFontColor = Qt::black
 Header font color. More...
 
HeaderHAlignment mHeaderHAlignment = FollowColumn
 Alignment for table headers. More...
 
HeaderMode mHeaderMode = FirstFrame
 Header display mode. More...
 
bool mHorizontalGrid = true
 True if grid should be shown. More...
 
QMap< int, double > mMaxColumnWidthMap
 Map of maximum width for each column. More...
 
QMap< int, double > mMaxRowHeightMap
 Map of maximum height for each row. More...
 
bool mShowEmptyRows = false
 True if empty rows should be shown in the table. More...
 
bool mShowGrid = true
 True if grid should be shown. More...
 
QgsLayoutTableContents mTableContents
 Contents to show in table. More...
 
QSizeF mTableSize
 
bool mVerticalGrid = true
 True if grid should be shown. More...
 
WrapBehavior mWrapBehavior = TruncateText
 
- Protected Attributes inherited from QgsLayoutMultiFrame
QList< QgsLayoutFrame * > mFrameItems
 
ResizeMode mResizeMode = UseExistingFrames
 
- Protected Attributes inherited from QgsLayoutObject
QgsObjectCustomProperties mCustomProperties
 Custom properties for object. More...
 
QgsPropertyCollection mDataDefinedProperties
 
QPointer< QgsLayoutmLayout
 

Friends

class QgsCompositionConverter
 
class TestQgsLayoutTable
 

Additional Inherited Members

- Signals inherited from QgsLayoutMultiFrame
void contentsChanged ()
 Emitted when the contents of the multi frame have changed and the frames must be redrawn. More...
 
- Signals inherited from QgsLayoutObject
void changed ()
 Emitted when the object's properties change. More...
 
- Static Public Member Functions inherited from QgsLayoutObject
static const QgsPropertiesDefinitionpropertyDefinitions ()
 Returns the layout object property definitions. More...
 

Detailed Description

A class to display a table in the print layout, and allow the table to span over multiple frames.

Since
QGIS 3.0

Definition at line 102 of file qgslayouttable.h.

Member Enumeration Documentation

◆ CellStyleGroup

Row or column groups for cell styling.

Enumerator
OddColumns 

Style odd numbered columns.

EvenColumns 

Style even numbered columns.

OddRows 

Style odd numbered rows.

EvenRows 

Style even numbered rows.

FirstColumn 

Style first column only.

LastColumn 

Style last column only.

HeaderRow 

Style header row.

FirstRow 

Style first row only.

LastRow 

Style last row only.

Definition at line 151 of file qgslayouttable.h.

◆ EmptyTableMode

Controls how empty tables are displayed.

Enumerator
HeadersOnly 

Show header rows only.

HideTable 

Hides entire table if empty.

ShowMessage 

Shows preset message instead of table contents.

Definition at line 132 of file qgslayouttable.h.

◆ HeaderHAlignment

Controls how headers are horizontally aligned in a table.

Enumerator
FollowColumn 

Header uses the same alignment as the column.

HeaderLeft 

Align headers left.

HeaderCenter 

Align headers to center.

HeaderRight 

Align headers right.

Definition at line 111 of file qgslayouttable.h.

◆ HeaderMode

Controls where headers are shown in the table.

Enumerator
FirstFrame 

Header shown on first frame only.

AllFrames 

Headers shown on all frames.

NoHeaders 

No headers shown for table.

Definition at line 122 of file qgslayouttable.h.

◆ WrapBehavior

Controls how long strings in the table are handled.

Enumerator
TruncateText 

Text which doesn't fit inside the cell is truncated.

WrapText 

Text which doesn't fit inside the cell is wrapped. Note that this only applies to text in columns with a fixed width.

Definition at line 142 of file qgslayouttable.h.

Constructor & Destructor Documentation

◆ QgsLayoutTable()

QgsLayoutTable::QgsLayoutTable ( QgsLayout layout)

Constructor for QgsLayoutTable, belonging to the specified layout.

Definition at line 52 of file qgslayouttable.cpp.

◆ ~QgsLayoutTable()

QgsLayoutTable::~QgsLayoutTable ( )
override

Definition at line 67 of file qgslayouttable.cpp.

Member Function Documentation

◆ backgroundColor()

QColor QgsLayoutTable::backgroundColor ( ) const
inline

Returns the color used for the background of the table.

See also
setBackgroundColor()
gridColor()

Definition at line 412 of file qgslayouttable.h.

◆ calculateMaxColumnWidths()

bool QgsLayoutTable::calculateMaxColumnWidths ( )
protectedvirtual

Calculates the maximum width of text shown in columns.

Definition at line 853 of file qgslayouttable.cpp.

◆ calculateMaxRowHeights()

bool QgsLayoutTable::calculateMaxRowHeights ( )
protectedvirtual

Calculates the maximum height of text shown in rows.

Definition at line 929 of file qgslayouttable.cpp.

◆ cellMargin()

double QgsLayoutTable::cellMargin ( ) const
inline

Returns the margin distance between cell borders and their contents in mm.

See also
setCellMargin()

Definition at line 181 of file qgslayouttable.h.

◆ cellStyle()

const QgsLayoutTableStyle * QgsLayoutTable::cellStyle ( QgsLayoutTable::CellStyleGroup  group) const

Returns the cell style for a cell group.

See also
setCellStyle()

Definition at line 771 of file qgslayouttable.cpp.

◆ columns()

QgsLayoutTableColumns& QgsLayoutTable::columns ( )
inline

Returns a reference to the list of QgsLayoutTableColumns shown in the table.

See also
setColumns()

Definition at line 432 of file qgslayouttable.h.

◆ contentFont()

QFont QgsLayoutTable::contentFont ( ) const
inline

Returns the font used to draw text in table body cells.

See also
setContentFont()
headerFont()

Definition at line 295 of file qgslayouttable.h.

◆ contentFontColor()

QColor QgsLayoutTable::contentFontColor ( ) const
inline

Returns the color used to draw text in table body cells.

See also
setContentFontColor()
contentFont()
headerFontColor()

Definition at line 311 of file qgslayouttable.h.

◆ contents()

QgsLayoutTableContents& QgsLayoutTable::contents ( )
inline

Returns the current contents of the table.

Excludes header cells.

Definition at line 471 of file qgslayouttable.h.

◆ contentsContainsRow()

bool QgsLayoutTable::contentsContainsRow ( const QgsLayoutTableContents contents,
const QgsLayoutTableRow row 
) const
protected

Checks whether a table contents contains a given row.

Parameters
contentstable contents to check
rowrow to check for
Returns
true if contents contains rows

Definition at line 1281 of file qgslayouttable.cpp.

◆ drawHorizontalGridLines()

void QgsLayoutTable::drawHorizontalGridLines ( QPainter *  painter,
int  firstRow,
int  lastRow,
bool  drawHeaderLines 
) const
protected

Draws the horizontal grid lines for the table.

Parameters
painterdestination painter for grid lines
firstRowindex corresponding to first row shown in frame
lastRowindex corresponding to last row shown in frame. If greater than the number of content rows in the table, then the default row height will be used for the remaining rows.
drawHeaderLinesset to true to include for the table header
See also
drawVerticalGridLines()

Definition at line 1080 of file qgslayouttable.cpp.

◆ drawVerticalGridLines()

void QgsLayoutTable::drawVerticalGridLines ( QPainter *  painter,
const QMap< int, double > &  maxWidthMap,
int  firstRow,
int  lastRow,
bool  hasHeader,
bool  mergeCells = false 
) const
protected

Draws the vertical grid lines for the table.

Parameters
painterdestination painter for grid lines
maxWidthMapQMap of int to double, where the int contains the column number and the double is the maximum width of text present in the column.
firstRowindex corresponding to first row shown in frame
lastRowindex corresponding to last row shown in frame. If greater than the number of content rows in the table, then the default row height will be used for the remaining rows.
hasHeaderset to true if table frame includes header cells
mergeCellsset to true to merge table content cells
Note
not available in Python bindings
See also
drawVerticalGridLines()
calculateMaxColumnWidths()
Note
not available in Python bindings

Definition at line 1225 of file qgslayouttable.cpp.

◆ emptyTableBehavior()

EmptyTableMode QgsLayoutTable::emptyTableBehavior ( ) const
inline

Returns the behavior mode for empty tables.

This property controls how the table is drawn if it contains no content rows.

See also
setEmptyTableBehavior()

Definition at line 194 of file qgslayouttable.h.

◆ emptyTableMessage()

QString QgsLayoutTable::emptyTableMessage ( ) const
inline

Returns the message for empty tables with no content rows.

This message is displayed in the table body if the empty table behavior is set to ShowMessage.

See also
setEmptyTableMessage()
emptyTableBehavior()

Definition at line 212 of file qgslayouttable.h.

◆ fixedFrameSize()

QSizeF QgsLayoutTable::fixedFrameSize ( int  frameIndex = -1) const
overridevirtual

Returns the fixed size for a frame, if desired.

If the fixed frame size changes, the sizes of all frames can be recalculated by calling recalculateFrameRects().

Parameters
frameIndexframe number
Returns
fixed size for frame. If the size has a width or height of 0, then the frame size is not fixed in that direction and frames can have variable width or height accordingly.
See also
minFrameSize()
recalculateFrameRects()

Reimplemented from QgsLayoutMultiFrame.

Definition at line 793 of file qgslayouttable.cpp.

◆ getTableContents()

virtual bool QgsLayoutTable::getTableContents ( QgsLayoutTableContents contents)
pure virtual

Fetches the contents used for the cells in the table.

Returns
true if table contents were successfully retrieved.
Parameters
contentsQgsLayoutTableContents to store retrieved row data in

Implemented in QgsLayoutItemAttributeTable, and QgsLayoutItemTextTable.

◆ gridColor()

QColor QgsLayoutTable::gridColor ( ) const
inline

Returns the color used for grid lines in the table.

See also
setGridColor()
showGrid()
gridStrokeWidth()

Definition at line 360 of file qgslayouttable.h.

◆ gridStrokeWidth()

double QgsLayoutTable::gridStrokeWidth ( ) const
inline

Returns the width of grid lines in the table in mm.

See also
setGridStrokeWidth()
showGrid()
gridColor()

Definition at line 344 of file qgslayouttable.h.

◆ headerFont()

QFont QgsLayoutTable::headerFont ( ) const
inline

Returns the font used to draw header text in the table.

See also
setHeaderFont()
contentFont()

Definition at line 239 of file qgslayouttable.h.

◆ headerFontColor()

QColor QgsLayoutTable::headerFontColor ( ) const
inline

Returns the color used to draw header text in the table.

See also
setHeaderFontColor()
headerFont()
contentFontColor()

Definition at line 255 of file qgslayouttable.h.

◆ headerHAlignment()

HeaderHAlignment QgsLayoutTable::headerHAlignment ( ) const
inline

Returns the horizontal alignment for table headers.

See also
setHeaderHAlignment()

Definition at line 267 of file qgslayouttable.h.

◆ headerLabels()

QMap< int, QString > QgsLayoutTable::headerLabels ( ) const
virtual

Returns the text used in the column headers for the table.

Returns
QMap of int to QString, where the int is the column index (starting at 0), and the string is the text to use for the column's header
Note
not available in Python bindings

Definition at line 779 of file qgslayouttable.cpp.

◆ headerMode()

HeaderMode QgsLayoutTable::headerMode ( ) const
inline

Returns the display mode for headers in the table.

This property controls if and where headers are shown in the table.

See also
setHeaderMode()

Definition at line 281 of file qgslayouttable.h.

◆ horizontalGrid()

bool QgsLayoutTable::horizontalGrid ( ) const
inline

Returns whether the grid's horizontal lines are drawn in the table.

See also
setShowGrid()
setGridStrokeWidth()
setGridColor()
setVerticalGrid()

Definition at line 379 of file qgslayouttable.h.

◆ minFrameSize()

QSizeF QgsLayoutTable::minFrameSize ( int  frameIndex = -1) const
overridevirtual

Returns the minimum size for a frames, if desired.

If the minimum size changes, the sizes of all frames can be recalculated by calling recalculateFrameRects().

Parameters
frameIndexframe number
Returns
minimum size for frame. If the size has a width or height of 0, then the frame size has no minimum in that direction.
See also
fixedFrameSize()
recalculateFrameRects()

Reimplemented from QgsLayoutMultiFrame.

Definition at line 799 of file qgslayouttable.cpp.

◆ readPropertiesFromElement()

bool QgsLayoutTable::readPropertiesFromElement ( const QDomElement &  element,
const QDomDocument &  document,
const QgsReadWriteContext context 
)
overridevirtual

Sets multiframe state from a DOM element.

Parameters
elementis the DOM element for the multiframe
documentDOM document
contextread write context
See also
writePropertiesToElement()

Note that item subclasses should not rely on all other items being present in the layout at the time this method is called. Instead, any connections and links to other items must be made in the finalizeRestoreFromXml() method. E.g. when restoring a scalebar, the connection to the linked map's signals should be implemented in finalizeRestoreFromXml(), not readPropertiesFromElement().

See also
readXml()

Reimplemented from QgsLayoutMultiFrame.

Definition at line 124 of file qgslayouttable.cpp.

◆ recalculateFrameSizes

void QgsLayoutTable::recalculateFrameSizes ( )
overrideslot

Definition at line 824 of file qgslayouttable.cpp.

◆ recalculateTableSize()

void QgsLayoutTable::recalculateTableSize ( )
protected

Recalculates and updates the size of the table and all table frames.

Definition at line 1272 of file qgslayouttable.cpp.

◆ refresh

void QgsLayoutTable::refresh ( )
overrideslot

Definition at line 197 of file qgslayouttable.cpp.

◆ refreshAttributes

void QgsLayoutTable::refreshAttributes ( )
virtualslot

Refreshes the contents shown in the table by querying for new data.

This also causes the column widths and size of the table to change to accommodate the new data.

Definition at line 811 of file qgslayouttable.cpp.

◆ render()

void QgsLayoutTable::render ( QgsLayoutItemRenderContext context,
const QRectF &  renderExtent,
int  frameIndex 
)
overridevirtual

Renders a portion of the multiframe's content into a render context.

Parameters
contextdestination render painter
renderExtentvisible extent of content to render into the painter.
frameIndexframe number for content

Implements QgsLayoutMultiFrame.

Definition at line 283 of file qgslayouttable.cpp.

◆ rowRange()

QPair< int, int > QgsLayoutTable::rowRange ( int  frameIndex) const
protected

Calculates a range of rows which should be visible in a given frame.

Parameters
frameIndexindex number for frame
Returns
row range

Definition at line 258 of file qgslayouttable.cpp.

◆ rowsVisible() [1/2]

int QgsLayoutTable::rowsVisible ( double  frameHeight,
int  firstRow,
bool  includeHeader,
bool  includeEmptyRows 
) const
protected

Calculates how many content rows would be visible within a frame of the specified height.

Parameters
frameHeightheight of frame
firstRowindex of first row visible in frame (where 0 = first row in table)
includeHeaderset to true if frame would include a header row
includeEmptyRowsset to true to also include rows which would be empty in the returned count. For instance, if the frame would include all table content rows and have space left for extra rows then setting this parameter to true would also include a count of these extra blank rows.
Returns
number of visible content rows (excluding header row)

Definition at line 203 of file qgslayouttable.cpp.

◆ rowsVisible() [2/2]

int QgsLayoutTable::rowsVisible ( int  frameIndex,
int  firstRow,
bool  includeEmptyRows 
) const
protected

Calculates how many content rows are visible within a given frame.

Parameters
frameIndexindex number for frame
firstRowindex of first row visible in frame (where 0 = first row in table)
includeEmptyRowsset to true to also include rows which would be empty in the returned count. For instance, if the frame would include all table content rows and have space left for extra rows then setting this parameter to true would also include a count of these extra blank rows.
Returns
number of visible content rows (excludes header rows)

Definition at line 240 of file qgslayouttable.cpp.

◆ setBackgroundColor()

void QgsLayoutTable::setBackgroundColor ( const QColor &  color)

Sets the color used for background of table.

See also
backgroundColor()
setGridColor()

Definition at line 728 of file qgslayouttable.cpp.

◆ setCellMargin()

void QgsLayoutTable::setCellMargin ( double  margin)

Sets the margin distance in mm between cell borders and their contents.

See also
cellMargin()

Definition at line 522 of file qgslayouttable.cpp.

◆ setCellStyle()

void QgsLayoutTable::setCellStyle ( QgsLayoutTable::CellStyleGroup  group,
const QgsLayoutTableStyle style 
)

Sets the cell style for a cell group.

See also
cellStyle()

Definition at line 763 of file qgslayouttable.cpp.

◆ setColumns()

void QgsLayoutTable::setColumns ( const QgsLayoutTableColumns columns)

Replaces the columns in the table with a specified list of QgsLayoutTableColumns.

Parameters
columnslist of QgsLayoutTableColumns to show in table.
See also
columns()

Definition at line 754 of file qgslayouttable.cpp.

◆ setContentFont()

void QgsLayoutTable::setContentFont ( const QFont &  font)

Sets the font used to draw text in table body cells.

See also
contentFont()
setHeaderFont()

Definition at line 632 of file qgslayouttable.cpp.

◆ setContentFontColor()

void QgsLayoutTable::setContentFontColor ( const QColor &  color)

Sets the color used to draw text in table body cells.

See also
contentFontColor()
setContentFont()
setHeaderFontColor()

Definition at line 646 of file qgslayouttable.cpp.

◆ setEmptyTableBehavior()

void QgsLayoutTable::setEmptyTableBehavior ( const QgsLayoutTable::EmptyTableMode  mode)

Sets the behavior mode for empty tables with no content rows.

See also
emptyTableBehavior()

Definition at line 537 of file qgslayouttable.cpp.

◆ setEmptyTableMessage()

void QgsLayoutTable::setEmptyTableMessage ( const QString &  message)

Sets the message for empty tables with no content rows.

This message is displayed in the table body if the empty table behavior is set to ShowMessage.

See also
emptyTableMessage()
setEmptyTableBehavior()

Definition at line 552 of file qgslayouttable.cpp.

◆ setGridColor()

void QgsLayoutTable::setGridColor ( const QColor &  color)

Sets the color used for grid lines in the table.

See also
gridColor()
setShowGrid()
setGridStrokeWidth()

Definition at line 687 of file qgslayouttable.cpp.

◆ setGridStrokeWidth()

void QgsLayoutTable::setGridStrokeWidth ( double  width)

Sets the width in mm for grid lines in the table.

See also
gridStrokeWidth()
setShowGrid()
setGridColor()

Definition at line 673 of file qgslayouttable.cpp.

◆ setHeaderFont()

void QgsLayoutTable::setHeaderFont ( const QFont &  font)

Sets the font used to draw header text in the table.

See also
headerFont()
setContentFont()

Definition at line 579 of file qgslayouttable.cpp.

◆ setHeaderFontColor()

void QgsLayoutTable::setHeaderFontColor ( const QColor &  color)

Sets the color used to draw header text in the table.

See also
headerFontColor()
setHeaderFont()
setContentFontColor()

Definition at line 593 of file qgslayouttable.cpp.

◆ setHeaderHAlignment()

void QgsLayoutTable::setHeaderHAlignment ( const QgsLayoutTable::HeaderHAlignment  alignment)

Sets the horizontal alignment for table headers.

See also
headerHAlignment()

Definition at line 606 of file qgslayouttable.cpp.

◆ setHeaderMode()

void QgsLayoutTable::setHeaderMode ( const QgsLayoutTable::HeaderMode  mode)

Sets the display mode for headers in the table.

This property controls if and where headers are shown in the table.

See also
headerMode()

Definition at line 619 of file qgslayouttable.cpp.

◆ setHorizontalGrid()

void QgsLayoutTable::setHorizontalGrid ( bool  horizontalGrid)

Sets whether the grid's horizontal lines should be drawn in the table.

Parameters
horizontalGridset to true to draw grid's horizontal lines
See also
setShowGrid()
setGridStrokeWidth()
setGridColor()
setVerticalGrid()

Definition at line 700 of file qgslayouttable.cpp.

◆ setShowEmptyRows()

void QgsLayoutTable::setShowEmptyRows ( bool  showEmpty)

Sets whether empty rows should be drawn.

Tables default to hiding empty rows.

Parameters
showEmptyset to true to show empty rows in the table
See also
showEmptyRows()

Definition at line 567 of file qgslayouttable.cpp.

◆ setShowGrid()

void QgsLayoutTable::setShowGrid ( bool  showGrid)

Sets whether grid lines should be drawn in the table.

Parameters
showGridset to true to show grid lines
See also
showGrid()
setGridStrokeWidth()
setGridColor()

Definition at line 659 of file qgslayouttable.cpp.

◆ setVerticalGrid()

void QgsLayoutTable::setVerticalGrid ( bool  verticalGrid)

Sets whether the grid's vertical lines should be drawn in the table.

Parameters
verticalGridset to true to draw grid's vertical lines
See also
setShowGrid()
setGridStrokeWidth()
setGridColor()
setHorizontalGrid()

Definition at line 714 of file qgslayouttable.cpp.

◆ setWrapBehavior()

void QgsLayoutTable::setWrapBehavior ( QgsLayoutTable::WrapBehavior  behavior)

Sets the wrap behavior for the table, which controls how text within cells is automatically wrapped.

See also
wrapBehavior()

Definition at line 741 of file qgslayouttable.cpp.

◆ showEmptyRows()

bool QgsLayoutTable::showEmptyRows ( ) const
inline

Returns whether empty rows are drawn in the table.

See also
setShowEmptyRows()

Definition at line 225 of file qgslayouttable.h.

◆ showGrid()

bool QgsLayoutTable::showGrid ( ) const
inline

Returns whether grid lines are drawn in the table.

See also
setShowGrid()
gridStrokeWidth()
gridColor()

Definition at line 328 of file qgslayouttable.h.

◆ totalHeight()

double QgsLayoutTable::totalHeight ( )
protected

Returns total height of table contents.

See also
totalWidth()

Definition at line 1007 of file qgslayouttable.cpp.

◆ totalSize()

QSizeF QgsLayoutTable::totalSize ( ) const
overridevirtual

Returns the total size of the multiframe's content, in layout units.

Implements QgsLayoutMultiFrame.

Definition at line 192 of file qgslayouttable.cpp.

◆ totalWidth()

double QgsLayoutTable::totalWidth ( )
protected

Returns total width of table contents.

Returns
table width
See also
totalHeight

Definition at line 986 of file qgslayouttable.cpp.

◆ verticalGrid()

bool QgsLayoutTable::verticalGrid ( ) const
inline

Returns whether the grid's vertical lines are drawn in the table.

See also
setShowGrid()
setGridStrokeWidth()
setGridColor()
setHorizontalGrid()

Definition at line 398 of file qgslayouttable.h.

◆ wrapBehavior()

WrapBehavior QgsLayoutTable::wrapBehavior ( ) const
inline

Returns the wrap behavior for the table, which controls how text within cells is automatically wrapped.

See also
setWrapBehavior()

Definition at line 426 of file qgslayouttable.h.

◆ writePropertiesToElement()

bool QgsLayoutTable::writePropertiesToElement ( QDomElement &  element,
QDomDocument &  document,
const QgsReadWriteContext context 
) const
overridevirtual

Stores multiframe state within an XML DOM element.

Parameters
elementis the DOM element to store the multiframe's properties in
documentDOM document
contextread write context
See also
writeXml()
readPropertiesFromElement()

Reimplemented from QgsLayoutMultiFrame.

Definition at line 76 of file qgslayouttable.cpp.

Friends And Related Function Documentation

◆ QgsCompositionConverter

friend class QgsCompositionConverter
friend

Definition at line 678 of file qgslayouttable.h.

◆ TestQgsLayoutTable

friend class TestQgsLayoutTable
friend

Definition at line 677 of file qgslayouttable.h.

Member Data Documentation

◆ mBackgroundColor

QColor QgsLayoutTable::mBackgroundColor = Qt::white
protected

Color for table background.

Definition at line 541 of file qgslayouttable.h.

◆ mCellMargin

double QgsLayoutTable::mCellMargin = 1.0
protected

Margin between cell borders and cell text.

Definition at line 496 of file qgslayouttable.h.

◆ mCellStyles

QMap< CellStyleGroup, QgsLayoutTableStyle * > QgsLayoutTable::mCellStyles
protected

Definition at line 559 of file qgslayouttable.h.

◆ mColumns

QgsLayoutTableColumns QgsLayoutTable::mColumns
protected

Columns to show in table.

Definition at line 544 of file qgslayouttable.h.

◆ mContentFont

QFont QgsLayoutTable::mContentFont
protected

Table contents font.

Definition at line 520 of file qgslayouttable.h.

◆ mContentFontColor

QColor QgsLayoutTable::mContentFontColor = Qt::black
protected

Table contents font color.

Definition at line 523 of file qgslayouttable.h.

◆ mEmptyTableMessage

QString QgsLayoutTable::mEmptyTableMessage
protected

String to show in empty tables.

Definition at line 502 of file qgslayouttable.h.

◆ mEmptyTableMode

EmptyTableMode QgsLayoutTable::mEmptyTableMode = HeadersOnly
protected

Behavior for empty tables.

Definition at line 499 of file qgslayouttable.h.

◆ mGridColor

QColor QgsLayoutTable::mGridColor = Qt::black
protected

Color for grid lines.

Definition at line 532 of file qgslayouttable.h.

◆ mGridStrokeWidth

double QgsLayoutTable::mGridStrokeWidth = 0.5
protected

Width of grid lines.

Definition at line 529 of file qgslayouttable.h.

◆ mHeaderFont

QFont QgsLayoutTable::mHeaderFont
protected

Header font.

Definition at line 508 of file qgslayouttable.h.

◆ mHeaderFontColor

QColor QgsLayoutTable::mHeaderFontColor = Qt::black
protected

Header font color.

Definition at line 511 of file qgslayouttable.h.

◆ mHeaderHAlignment

HeaderHAlignment QgsLayoutTable::mHeaderHAlignment = FollowColumn
protected

Alignment for table headers.

Definition at line 514 of file qgslayouttable.h.

◆ mHeaderMode

HeaderMode QgsLayoutTable::mHeaderMode = FirstFrame
protected

Header display mode.

Definition at line 517 of file qgslayouttable.h.

◆ mHorizontalGrid

bool QgsLayoutTable::mHorizontalGrid = true
protected

True if grid should be shown.

Definition at line 535 of file qgslayouttable.h.

◆ mMaxColumnWidthMap

QMap<int, double> QgsLayoutTable::mMaxColumnWidthMap
protected

Map of maximum width for each column.

Definition at line 550 of file qgslayouttable.h.

◆ mMaxRowHeightMap

QMap<int, double> QgsLayoutTable::mMaxRowHeightMap
protected

Map of maximum height for each row.

Definition at line 553 of file qgslayouttable.h.

◆ mShowEmptyRows

bool QgsLayoutTable::mShowEmptyRows = false
protected

True if empty rows should be shown in the table.

Definition at line 505 of file qgslayouttable.h.

◆ mShowGrid

bool QgsLayoutTable::mShowGrid = true
protected

True if grid should be shown.

Definition at line 526 of file qgslayouttable.h.

◆ mTableContents

QgsLayoutTableContents QgsLayoutTable::mTableContents
protected

Contents to show in table.

Definition at line 547 of file qgslayouttable.h.

◆ mTableSize

QSizeF QgsLayoutTable::mTableSize
protected

Definition at line 555 of file qgslayouttable.h.

◆ mVerticalGrid

bool QgsLayoutTable::mVerticalGrid = true
protected

True if grid should be shown.

Definition at line 538 of file qgslayouttable.h.

◆ mWrapBehavior

WrapBehavior QgsLayoutTable::mWrapBehavior = TruncateText
protected

Definition at line 557 of file qgslayouttable.h.


The documentation for this class was generated from the following files: