Auf dieser Seite

Q3DScatterWidgetItem Class

Die Klasse „Q3DScatterWidgetItem“ bietet Methoden zum Rendern von 3D-Streudiagrammen. Mehr...

Header: #include <Q3DScatterWidgetItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS GraphsWidgets)
target_link_libraries(mytarget PRIVATE Qt6::GraphsWidgets)
qmake: QT += graphswidgets
Erbt: Q3DGraphsWidgetItem

Eigenschaften

Öffentliche Funktionen

Q3DScatterWidgetItem(QObject *parent = nullptr)
virtual ~Q3DScatterWidgetItem() override
void addAxis(QValue3DAxis *axis)
void addSeries(QScatter3DSeries *series)
QList<QValue3DAxis *> axes() const
QValue3DAxis *axisX() const
QValue3DAxis *axisY() const
QValue3DAxis *axisZ() const
void releaseAxis(QValue3DAxis *axis)
void removeSeries(QScatter3DSeries *series)
QScatter3DSeries *selectedSeries() const
QList<QScatter3DSeries *> seriesList() const

Öffentliche Slots

void setAxisX(QValue3DAxis *axis)
void setAxisY(QValue3DAxis *axis)
void setAxisZ(QValue3DAxis *axis)

Signale

void axisXChanged(QValue3DAxis *axis)
void axisYChanged(QValue3DAxis *axis)
void axisZChanged(QValue3DAxis *axis)
void selectedSeriesChanged(QScatter3DSeries *series)

Ausführliche Beschreibung

Diese Klasse ermöglicht es Entwicklern, 3D-Streudiagramme darzustellen und diese durch freies Drehen der Szene zu betrachten. Das Drehen erfolgt durch Gedrückthalten der rechten Maustaste und Bewegen der Maus, während das Zoomen über das Mausrad erfolgt. Falls aktiviert, erfolgt die Auswahl mit der linken Maustaste. Die Szene kann durch Klicken auf das Mausrad auf die Standard-Kameraansicht zurückgesetzt werden. Auf Touch-Geräten erfolgt die Drehung durch „Tippen und Ziehen“, die Auswahl durch „Tippen und Halten“ und das Zoomen durch „Zusammenziehen“.

Wenn für `Q3DScatterWidgetItem` keine Achsen explizit festgelegt sind, werden temporäre Standardachsen ohne Beschriftungen erstellt. Diese Standardachsen können über Achsen-Accessoren geändert werden; sobald jedoch eine Achse explizit für die jeweilige Ausrichtung festgelegt wird, wird die Standardachse für diese Ausrichtung gelöscht.

Q3DScatterWidgetItem unterstützt die gleichzeitige Darstellung mehrerer Reihen.

Q3DScatterWidgetItem unterstützt Transparenz. Mit dieser Funktion können Sie die Deckkraft der Streupunkte anpassen und sie teilweise durchscheinend, vollständig transparent oder undurchsichtig machen.

So erstellen Sie ein minimalistisches Q3DScatterWidgetItem-Diagramm

Erstellen Sie zunächst ein `Q3DScatterWidgetItem`. Da wir das Diagramm in diesem Beispiel als Fenster der obersten Ebene ausführen, müssen wir das Flag ` Qt::FramelessWindowHint ` zurücksetzen, das standardmäßig gesetzt ist:

QQuickWidget quickWidget;
Q3DScatterWidgetItem scatter;
scatter.setWidget(&quickWidget);
scatter.widget()->setMinimumSize(QSize(256, 256));

Nun ist das `Q3DScatterWidgetItem` bereit, Daten zum Rendern zu empfangen. Fügen Sie eine Serie mit 3 „ QVector3D “-Elementen hinzu:

Hinweis: In der neuen Proxy-Serie-Beziehung werden die Daten in Serien gespeichert. Damit der Proxy die Daten hinzufügen, löschen oder bearbeiten kann, muss daher zunächst eine Serie angelegt werden.

QScatter3DSeries series;
QScatterDataArray data;
data << QScatterDataItem(0.5f, 0.5f, 0.5f) << QScatterDataItem(-0.3f, -0.5f, -0.4f)
     << QScatterDataItem(0.0f, -0.3f, 0.2f);
series.dataProxy()->addItems(data);
scatter.addSeries(&series);

Abschließend müssen Sie die Sichtbarkeit festlegen:

scatter.widget()->show();

Der vollständige Code zum Erstellen und Anzeigen dieses Diagramms lautet:

#include <QtGraphs>
#include <QtGraphsWidgets/q3dscatterwidgetitem.h>
#include <QtWidgets/qapplication.h>

int main(int argc, char **argv)
{
    QApplication app(argc, argv);

    QQuickWidget quickWidget;
    Q3DScatterWidgetItem scatter;
    scatter.setWidget(&quickWidget);
    scatter.widget()->setMinimumSize(QSize(256, 256));
    QScatter3DSeries series;
    QScatterDataArray data;
    data << QScatterDataItem(0.5f, 0.5f, 0.5f) << QScatterDataItem(-0.3f, -0.5f, -0.4f)
         << QScatterDataItem(0.0f, -0.3f, 0.2f);
    series.dataProxy()->addItems(data);
    scatter.addSeries(&series);
    scatter.widget()->show();

    return app.exec();
}

Und das ist das Ergebnis dieser wenigen Codezeilen:

3D-Streudiagramm mit grünen Kugeln

Die Szene lässt sich drehen und vergrößern, und ein Element kann ausgewählt werden, um dessen Position anzuzeigen; weitere Interaktionen sind in diesem minimalen Code-Beispiel jedoch nicht enthalten. Weitere Informationen erhalten Sie, wenn Sie sich mit den bereitgestellten Beispielen vertraut machen, wie beispielsweise dem „Simple Scatter Graph“.

Siehe auch Q3DBarsWidgetItem, Q3DSurfaceWidgetItem und Qt Graphs C++-Klassen für 3D.

Dokumentation zu den Eigenschaften

axisX : QValue3DAxis*

Diese Eigenschaft gibt die aktive x-Achse an.

Legt „ axis “ als aktive x-Achse fest. Ruft implizit „ addAxis()“ auf, um die Eigentumsrechte an der Achse auf dieses Diagramm zu übertragen.

Ist axis null, wird eine temporäre Standardachse ohne Beschriftungen und mit automatisch angepasstem Bereich erstellt. Diese temporäre Achse wird gelöscht, wenn eine andere Achse explizit auf dieselbe Ausrichtung gesetzt wird.

Zugriffsfunktionen:

QValue3DAxis *axisX() const
void setAxisX(QValue3DAxis *axis)

Notifier-Signal:

void axisXChanged(QValue3DAxis *axis)

Siehe auch ` addAxis()` und ` releaseAxis()`.

axisY : QValue3DAxis*

Diese Eigenschaft gibt die aktive y-Achse an.

Legt „ axis “ als aktive y-Achse fest. Ruft implizit „ addAxis()“ auf, um die Eigentumsrechte an der Achse auf dieses Diagramm zu übertragen.

Ist axis null, wird eine temporäre Standardachse ohne Beschriftungen und mit einem sich automatisch anpassenden Bereich erstellt. Diese temporäre Achse wird gelöscht, wenn eine andere Achse explizit auf dieselbe Ausrichtung gesetzt wird.

Zugriffsfunktionen:

QValue3DAxis *axisY() const
void setAxisY(QValue3DAxis *axis)

Notifier-Signal:

void axisYChanged(QValue3DAxis *axis)

Siehe auch ` addAxis()` und ` releaseAxis()`.

axisZ : QValue3DAxis*

Diese Eigenschaft gibt die aktive Z-Achse an.

Legt „ axis “ als aktive Z-Achse fest. Ruft implizit „ addAxis()“ auf, um die Eigentumsrechte an der Achse auf dieses Diagramm zu übertragen.

Ist axis null, wird eine temporäre Standardachse ohne Beschriftungen und mit automatisch angepasstem Bereich erstellt. Diese temporäre Achse wird gelöscht, wenn eine andere Achse explizit auf dieselbe Ausrichtung gesetzt wird.

Zugriffsfunktionen:

QValue3DAxis *axisZ() const
void setAxisZ(QValue3DAxis *axis)

Notifier-Signal:

void axisZChanged(QValue3DAxis *axis)

Siehe auch ` addAxis()` und ` releaseAxis()`.

[read-only] selectedSeries : QScatter3DSeries*

Diese Eigenschaft enthält die ausgewählte Reihe oder den Wert „null“.

Zugriffsfunktionen:

QScatter3DSeries *selectedSeries() const

Benachrichtigungssignal:

void selectedSeriesChanged(QScatter3DSeries *series)

Dokumentation der Member-Funktionen

[explicit] Q3DScatterWidgetItem::Q3DScatterWidgetItem(QObject *parent = nullptr)

Erstellt ein neues 3D-Streudiagramm mit dem optionalen Parameter „ parent “.

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

Löscht das 3D-Streudiagramm.

void Q3DScatterWidgetItem::addAxis(QValue3DAxis *axis)

Fügt „ axis “ zum Diagramm hinzu. Die über „addAxis“ hinzugefügten Achsen werden noch nicht verwendet; „addAxis“ dient lediglich dazu, die Zuständigkeit für die „ axis “ dem Diagramm zuzuweisen. Die „ axis “ darf nicht null sein oder bereits einem anderen Diagramm hinzugefügt worden sein.

Siehe auch „ releaseAxis()“, „ setAxisX()“, „ setAxisY()“ und „ setAxisZ()“.

void Q3DScatterWidgetItem::addSeries(QScatter3DSeries *series)

Fügt die Reihe „ series “ zum Diagramm hinzu. Ein Diagramm kann mehrere Reihen enthalten, verfügt jedoch nur über einen Achsenpaar. Wenn für die neu hinzugefügte Reihe ein Element ausgewählt wurde, wird dieses hervorgehoben und eine eventuell vorhandene Auswahl wird aufgehoben. Nur eine der hinzugefügten Reihen kann aktiv ausgewählt sein.

Siehe auch „ Q3DGraphsWidgetItem::hasSeries()“.

QList<QValue3DAxis *> Q3DScatterWidgetItem::axes() const

Gibt die Liste aller hinzugefügten Achsen zurück.

Siehe auch addAxis().

void Q3DScatterWidgetItem::releaseAxis(QValue3DAxis *axis)

Gibt die Eigentumsrechte an der „ axis “ an den Aufrufer zurück, sofern diese dem Graphen hinzugefügt wurde. Wenn die freigegebene „ axis “ gerade verwendet wird, wird eine neue Standardachse erstellt und als aktiv gesetzt.

Wird die Standardachse freigegeben und später wieder hinzugefügt, verhält sie sich wie jede andere Achse.

Siehe auch „ addAxis()“, „ setAxisX()“, „ setAxisY()“ und „ setAxisZ()“.

void Q3DScatterWidgetItem::removeSeries(QScatter3DSeries *series)

Entfernt den „ series “ aus dem Diagramm.

Siehe auch „ Q3DGraphsWidgetItem::hasSeries()“.

QList<QScatter3DSeries *> Q3DScatterWidgetItem::seriesList() const

Gibt die Liste der zu diesem Diagramm hinzugefügten Reihen zurück.

Siehe auch „ Q3DGraphsWidgetItem::hasSeries()“.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.