QGIS API Documentation  3.11.0-Master (68611307d7)
Public Member Functions | Static Public Member Functions | List of all members
QgsLayoutItemTextTable Class Reference

A text table item that reads text from string lists. More...

#include <qgslayoutitemtexttable.h>

Inheritance diagram for QgsLayoutItemTextTable:
Inheritance graph
[legend]

Public Member Functions

 QgsLayoutItemTextTable (QgsLayout *layout)
 Constructor for QgsLayoutItemTextTable, for the specified layout. More...
 
void addRow (const QStringList &row)
 Adds a row to the table. More...
 
QString displayName () const override
 Returns the multiframe display name. More...
 
bool getTableContents (QgsLayoutTableContents &contents) override
 Fetches the contents used for the cells in the table. More...
 
void setContents (const QVector< QStringList > &contents)
 Sets the contents of the text table. More...
 
int type () const override
 Returns unique multiframe type id. More...
 
- Public Member Functions inherited from QgsLayoutTable
 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...
 
virtual QgsConditionalStyle conditionalCellStyle (int row, int column) const
 Returns the conditional style to use for the cell at row, column. 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...
 
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...
 
QgsExpressionContext createExpressionContext () const override
 This method needs to be reimplemented in all classes which implement this interface and return an expression context. 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...
 
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...
 
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...
 

Static Public Member Functions

static QgsLayoutItemTextTablecreate (QgsLayout *layout)
 Returns a new QgsLayoutItemTextTable for the specified parent layout. More...
 
- Static Public Member Functions inherited from QgsLayoutObject
static const QgsPropertiesDefinitionpropertyDefinitions ()
 Returns the layout object property definitions. More...
 

Additional Inherited Members

- Public Types inherited from QgsLayoutTable
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, MapGridEnabled, MapGridIntervalX,
  MapGridIntervalY, MapGridOffsetX, MapGridOffsetY, MapGridFrameSize,
  MapGridFrameMargin, MapGridLabelDistance, MapGridCrossSize, MapGridFrameLineThickness,
  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 inherited from QgsLayoutTable
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...
 
- 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...
 
- Protected Member Functions inherited from QgsLayoutTable
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 inherited from QgsLayoutTable
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
 

Detailed Description

A text table item that reads text from string lists.

Since
QGIS 3.0

Definition at line 30 of file qgslayoutitemtexttable.h.

Constructor & Destructor Documentation

◆ QgsLayoutItemTextTable()

QgsLayoutItemTextTable::QgsLayoutItemTextTable ( QgsLayout layout)

Constructor for QgsLayoutItemTextTable, for the specified layout.

Ownership is transferred to the layout.

Definition at line 23 of file qgslayoutitemtexttable.cpp.

Member Function Documentation

◆ addRow()

void QgsLayoutItemTextTable::addRow ( const QStringList &  row)

Adds a row to the table.

Parameters
rowlist of strings to use for each cell's value in the newly added row
Note
If row is shorter than the number of columns in the table than blank cells will be inserted at the end of the row. If row contains more strings then the number of columns in the table then these extra strings will be ignored.
if adding many rows, setContents() is much faster

Definition at line 44 of file qgslayoutitemtexttable.cpp.

◆ create()

QgsLayoutItemTextTable * QgsLayoutItemTextTable::create ( QgsLayout layout)
static

Returns a new QgsLayoutItemTextTable for the specified parent layout.

Definition at line 39 of file qgslayoutitemtexttable.cpp.

◆ displayName()

QString QgsLayoutItemTextTable::displayName ( ) const
overridevirtual

Returns the multiframe display name.

Reimplemented from QgsLayoutMultiFrame.

Definition at line 34 of file qgslayoutitemtexttable.cpp.

◆ getTableContents()

bool QgsLayoutItemTextTable::getTableContents ( QgsLayoutTableContents contents)
overridevirtual

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

Implements QgsLayoutTable.

Definition at line 56 of file qgslayoutitemtexttable.cpp.

◆ setContents()

void QgsLayoutItemTextTable::setContents ( const QVector< QStringList > &  contents)

Sets the contents of the text table.

Parameters
contentslist of table rows
See also
addRow

Definition at line 50 of file qgslayoutitemtexttable.cpp.

◆ type()

int QgsLayoutItemTextTable::type ( ) const
overridevirtual

Returns unique multiframe type id.

Implements QgsLayoutMultiFrame.

Definition at line 29 of file qgslayoutitemtexttable.cpp.


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