QAbstract3DSeries Class

The QAbstract3DSeries class is a base class for all 3D data series. More...

Header: #include <QAbstract3DSeries>
CMake: find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmake: QT += graphs
Instantiated By: Abstract3DSeries
Inherits: QObject
Inherited By:

QBar3DSeries, QScatter3DSeries, and QSurface3DSeries

Status: Technical Preview

Public Types

enum class Mesh { UserDefined, Bar, Cube, Pyramid, Cone, …, Point }
enum class SeriesType { None, Bar, Scatter, Surface }

Properties

Public Functions

virtual ~QAbstract3DSeries() override
QColor baseColor() const
QLinearGradient baseGradient() const
Q3DTheme::ColorStyle colorStyle() const
bool isItemLabelVisible() const
bool isMeshSmooth() const
bool isVisible() const
QString itemLabel()
QString itemLabelFormat() const
QAbstract3DSeries::Mesh mesh() const
QQuaternion meshRotation() const
QColor multiHighlightColor() const
QLinearGradient multiHighlightGradient() const
QString name() const
void setBaseColor(const QColor &color)
void setBaseGradient(const QLinearGradient &gradient)
void setColorStyle(Q3DTheme::ColorStyle style)
void setItemLabelFormat(const QString &format)
void setItemLabelVisible(bool visible)
void setMesh(QAbstract3DSeries::Mesh mesh)
void setMeshAxisAndAngle(const QVector3D &axis, float angle)
void setMeshRotation(const QQuaternion &rotation)
void setMeshSmooth(bool enable)
void setMultiHighlightColor(const QColor &color)
void setMultiHighlightGradient(const QLinearGradient &gradient)
void setName(const QString &name)
void setSingleHighlightColor(const QColor &color)
void setSingleHighlightGradient(const QLinearGradient &gradient)
void setUserDefinedMesh(const QString &fileName)
void setVisible(bool visible)
QColor singleHighlightColor() const
QLinearGradient singleHighlightGradient() const
QAbstract3DSeries::SeriesType type() const
QString userDefinedMesh() const

Signals

void baseColorChanged(const QColor &color)
void baseGradientChanged(const QLinearGradient &gradient)
void colorStyleChanged(Q3DTheme::ColorStyle style)
void itemLabelChanged(const QString &label)
void itemLabelFormatChanged(const QString &format)
void itemLabelVisibilityChanged(bool visible)
void meshChanged(QAbstract3DSeries::Mesh mesh)
void meshRotationChanged(const QQuaternion &rotation)
void meshSmoothChanged(bool enabled)
void multiHighlightColorChanged(const QColor &color)
void multiHighlightGradientChanged(const QLinearGradient &gradient)
void nameChanged(const QString &name)
void singleHighlightColorChanged(const QColor &color)
void singleHighlightGradientChanged(const QLinearGradient &gradient)
void userDefinedMeshChanged(const QString &fileName)
void visibilityChanged(bool visible)

Detailed Description

There are inherited classes for each supported series type: QBar3DSeries, QScatter3DSeries, and QSurface3DSeries.

For more information, see Qt Graphs Data Handling with 3D.

Member Type Documentation

enum class QAbstract3DSeries::Mesh

Predefined mesh types. All styles are not usable with all graphs types.

ConstantValueDescription
QAbstract3DSeries::Mesh::UserDefined0User defined mesh, set via QAbstract3DSeries::userDefinedMesh property.
QAbstract3DSeries::Mesh::Bar1Basic rectangular bar.
QAbstract3DSeries::Mesh::Cube2Basic cube.
QAbstract3DSeries::Mesh::Pyramid3Four-sided pyramid.
QAbstract3DSeries::Mesh::Cone4Basic cone.
QAbstract3DSeries::Mesh::Cylinder5Basic cylinder.
QAbstract3DSeries::Mesh::BevelBar6Slightly beveled (rounded) rectangular bar.
QAbstract3DSeries::Mesh::BevelCube7Slightly beveled (rounded) cube.
QAbstract3DSeries::Mesh::Sphere8Sphere.
QAbstract3DSeries::Mesh::Minimal9The minimal 3D mesh: a triangular pyramid. Usable only with Q3DScatter.
QAbstract3DSeries::Mesh::Arrow10Arrow pointing upwards.
QAbstract3DSeries::Mesh::Point112D point. Usable only with Q3DScatter. Shadows do not affect this style. Color style Q3DTheme::ColorStyle::ObjectGradient is not supported by this style.

enum class QAbstract3DSeries::SeriesType

Type of the series.

ConstantValueDescription
QAbstract3DSeries::SeriesType::None0No series type.
QAbstract3DSeries::SeriesType::Bar1Series type for Q3DBars.
QAbstract3DSeries::SeriesType::Scatter2Series type for Q3DScatter.
QAbstract3DSeries::SeriesType::Surface3Series type for Q3DSurface.

Property Documentation

baseColor : QColor

This property holds the base color of the series.

Access functions:

QColor baseColor() const
void setBaseColor(const QColor &color)

Notifier signal:

void baseColorChanged(const QColor &color)

See also colorStyle and Q3DTheme::baseColors.

baseGradient : QLinearGradient

This property holds the base gradient of the series.

Access functions:

QLinearGradient baseGradient() const
void setBaseGradient(const QLinearGradient &gradient)

Notifier signal:

void baseGradientChanged(const QLinearGradient &gradient)

See also colorStyle and Q3DTheme::baseGradients.

colorStyle : Q3DTheme::ColorStyle

This property holds the color style for the series.

Access functions:

Q3DTheme::ColorStyle colorStyle() const
void setColorStyle(Q3DTheme::ColorStyle style)

Notifier signal:

void colorStyleChanged(Q3DTheme::ColorStyle style)

See also Q3DTheme::ColorStyle.

[read-only] itemLabel : const QString

This property holds the formatted item label.

If there is no selected item or the selected item is not visible, returns an empty string.

Access functions:

QString itemLabel()

Notifier signal:

void itemLabelChanged(const QString &label)

See also itemLabelFormat.

itemLabelFormat : QString

This property holds the label format for data items in this series.

This format is used for single item labels, for example, when an item is selected. How the format is interpreted depends on series type: QBar3DSeries, QScatter3DSeries, QSurface3DSeries.

Access functions:

QString itemLabelFormat() const
void setItemLabelFormat(const QString &format)

Notifier signal:

void itemLabelFormatChanged(const QString &format)

itemLabelVisible : bool

This property holds the visibility of item labels in the graph.

If true, item labels are drawn as floating labels in the graph. Otherwise, item labels are not drawn. To show the item label in an external control, this property is set to false. Defaults to true.

Access functions:

bool isItemLabelVisible() const
void setItemLabelVisible(bool visible)

Notifier signal:

void itemLabelVisibilityChanged(bool visible)

See also itemLabelFormat and itemLabel.

mesh : QAbstract3DSeries::Mesh

This property holds the mesh of the items in the series.

For QSurface3DSeries, this property holds the selection pointer.

If the mesh is MeshUserDefined, then the userDefinedMesh property must also be set for items to render properly. The default value depends on the graph type.

Access functions:

QAbstract3DSeries::Mesh mesh() const
void setMesh(QAbstract3DSeries::Mesh mesh)

Notifier signal:

void meshChanged(QAbstract3DSeries::Mesh mesh)

meshRotation : QQuaternion

This property holds the mesh rotation that is applied to all items of the series.

The rotation should be a normalized QQuaternion. For those series types that support item specific rotation, the rotations are multiplied together. QBar3DSeries ignores any rotation that is not around the y-axis. QSurface3DSeries applies the rotation only to the selection pointer. Defaults to no rotation.

Access functions:

QQuaternion meshRotation() const
void setMeshRotation(const QQuaternion &rotation)

Notifier signal:

void meshRotationChanged(const QQuaternion &rotation)

meshSmooth : bool

This property holds whether smooth versions of predefined meshes are used.

If true, smooth versions set via the mesh property are used. This property does not affect custom meshes used when the mesh is set to MeshUserDefined. Defaults to false.

Access functions:

bool isMeshSmooth() const
void setMeshSmooth(bool enable)

Notifier signal:

void meshSmoothChanged(bool enabled)

multiHighlightColor : QColor

This property holds the multiple item highlight color of the series.

Access functions:

QColor multiHighlightColor() const
void setMultiHighlightColor(const QColor &color)

Notifier signal:

void multiHighlightColorChanged(const QColor &color)

See also colorStyle and Q3DTheme::multiHighlightColor.

multiHighlightGradient : QLinearGradient

This property holds the multiple item highlight gradient of the series.

Access functions:

QLinearGradient multiHighlightGradient() const
void setMultiHighlightGradient(const QLinearGradient &gradient)

Notifier signal:

void multiHighlightGradientChanged(const QLinearGradient &gradient)

See also colorStyle and Q3DTheme::multiHighlightGradient.

name : QString

This property holds the series name.

The series name can be used in item label format with the tag @seriesName.

Access functions:

QString name() const
void setName(const QString &name)

Notifier signal:

void nameChanged(const QString &name)

See also itemLabelFormat.

singleHighlightColor : QColor

This property holds the single item highlight color of the series.

Access functions:

QColor singleHighlightColor() const
void setSingleHighlightColor(const QColor &color)

Notifier signal:

void singleHighlightColorChanged(const QColor &color)

See also colorStyle and Q3DTheme::singleHighlightColor.

singleHighlightGradient : QLinearGradient

This property holds the single item highlight gradient of the series.

Access functions:

QLinearGradient singleHighlightGradient() const
void setSingleHighlightGradient(const QLinearGradient &gradient)

Notifier signal:

void singleHighlightGradientChanged(const QLinearGradient &gradient)

See also colorStyle and Q3DTheme::singleHighlightGradient.

[read-only] type : const QAbstract3DSeries::SeriesType

This property holds the type of the series.

Access functions:

QAbstract3DSeries::SeriesType type() const

userDefinedMesh : QString

This property holds the filename for a user defined custom mesh for objects.

The custom mesh is used when mesh is MeshUserDefined.

Note: The file needs to be in the Wavefront OBJ format and include vertices, normals, and UVs. It also needs to be in triangles.

Access functions:

QString userDefinedMesh() const
void setUserDefinedMesh(const QString &fileName)

Notifier signal:

void userDefinedMeshChanged(const QString &fileName)

visible : bool

This property holds the visibility of the series.

If this property is false, the series is not rendered. Defaults to true.

Access functions:

bool isVisible() const
void setVisible(bool visible)

Notifier signal:

void visibilityChanged(bool visible)

Member Function Documentation

[override virtual noexcept] QAbstract3DSeries::~QAbstract3DSeries()

Deletes the abstract 3D series.

[invokable] void QAbstract3DSeries::setMeshAxisAndAngle(const QVector3D &axis, float angle)

A convenience function to construct a mesh rotation quaternion from axis and angle.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also meshRotation.