Q3DScatter Class
Die Klasse „Q3DScatter“ bietet Methoden zum Zeichnen von 3D-Streudiagrammen. Mehr...
| Header: | #include <Q3DScatter> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS DataVisualization) target_link_libraries(mytarget PRIVATE Qt6::DataVisualization) |
| qmake: | QT += datavisualization |
| Seit: | QtDataVisualization 1.0 |
| Erbt von: | QAbstract3DGraph |
| Status: | Veraltet |
Diese Klasse ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.
Eigenschaften
- axisX : QValue3DAxis*
- axisY : QValue3DAxis*
- axisZ : QValue3DAxis*
- selectedSeries : QScatter3DSeries*
Öffentliche Funktionen
| Q3DScatter(const QSurfaceFormat *format = nullptr, QWindow *parent = nullptr) | |
| virtual | ~Q3DScatter() |
| 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 |
| 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, Streudiagramme in 3D darzustellen und diese durch freies Drehen der Szene zu betrachten. Das Drehen erfolgt durch Gedrückthalten der rechten Maustaste und Bewegen der Maus. Das Zoomen erfolgt über das Mausrad. Die Auswahl erfolgt, sofern aktiviert, über die linke 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 Q3DScatter keine Achsen explizit zugewiesen wurden, werden vorübergehend Standardachsen ohne Beschriftung erstellt. Diese Standardachsen können über Achsen-Accessoren geändert werden, doch sobald eine Achse explizit für die jeweilige Ausrichtung festgelegt wird, wird die Standardachse für diese Ausrichtung gelöscht.
Q3DScatter unterstützt die gleichzeitige Darstellung mehrerer Reihen.
So erstellen Sie ein minimales Q3DScatter-Diagramm
Erstellen Sie zunächst ein `Q3DScatter`-Objekt. Da wir das Diagramm in diesem Beispiel als Fenster auf oberster Ebene ausführen, müssen wir das Flag ` Qt::FramelessWindowHint ` zurücksetzen, das standardmäßig gesetzt ist:
Q3DScatter scatter;
scatter.setFlags(scatter.flags() ^ Qt::FramelessWindowHint);Nun ist Q3DScatter bereit, Daten zum Rendern zu empfangen. Fügen Sie eine Reihe mit 3 „ QVector3D “-Elementen hinzu:
QScatter3DSeries *series = new QScatter3DSeries;
QScatterDataArray data;
data << QVector3D(0.5f, 0.5f, 0.5f) << QVector3D(-0.3f, -0.5f, -0.4f) << QVector3D(0.0f, -0.3f, 0.2f);
series->dataProxy()->addItems(data);
scatter.addSeries(series);Abschließend müssen Sie das Diagramm sichtbar machen:
scatter.show();Der vollständige Code zum Erstellen und Anzeigen dieses Diagramms lautet:
#include <QtDataVisualization>
int main(int argc, char **argv)
{
qputenv("QSG_RHI_BACKEND", "opengl");
QGuiApplication app(argc, argv);
Q3DScatter scatter;
scatter.setFlags(scatter.flags() ^ Qt::FramelessWindowHint);
QScatter3DSeries *series = new QScatter3DSeries;
QScatterDataArray data;
data << QVector3D(0.5f, 0.5f, 0.5f) << QVector3D(-0.3f, -0.5f, -0.4f) << QVector3D(0.0f, -0.3f, 0.2f);
series->dataProxy()->addItems(data);
scatter.addSeries(series);
scatter.show();
return app.exec();
}Und das ist das Ergebnis dieser wenigen Codezeilen:

Die Szene lässt sich drehen und vergrößern, und ein Element kann ausgewählt werden, um dessen Position anzuzeigen; weitere Interaktionsmöglichkeiten sind in diesem minimalen Code-Beispiel jedoch nicht enthalten. Weitere Informationen erhalten Sie, wenn Sie sich mit den bereitgestellten Beispielen wie dem Streudiagramm vertraut machen.
Siehe auch Q3DBars, Q3DSurface und Qt Data Visualization C++ Classes.
Dokumentation zu den Eigenschaften
axisX : QValue3DAxis*
Diese Eigenschaft gibt die aktive x-Achse an.
Zugriffsfunktionen:
| QValue3DAxis * | axisX() const |
| void | setAxisX(QValue3DAxis *axis) |
Benachrichtigungssignal:
| void | axisXChanged(QValue3DAxis *axis) |
axisY : QValue3DAxis*
Diese Eigenschaft gibt die aktive y-Achse an.
Zugriffsfunktionen:
| QValue3DAxis * | axisY() const |
| void | setAxisY(QValue3DAxis *axis) |
Benachrichtigungssignal:
| void | axisYChanged(QValue3DAxis *axis) |
axisZ : QValue3DAxis*
Diese Eigenschaft gibt die aktive z-Achse an.
Zugriffsfunktionen:
Benachrichtigungssignal:
| void | axisZChanged(QValue3DAxis *axis) |
[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] Q3DScatter::Q3DScatter(const QSurfaceFormat *format = nullptr, QWindow *parent = nullptr)
Erstellt ein neues 3D-Streudiagramm mit optionalem „ parent “-Fenster und Oberflächen format.
[virtual noexcept] Q3DScatter::~Q3DScatter()
Löscht das 3D-Streudiagramm.
void Q3DScatter::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 „ axis “ dem Diagramm zuzuweisen. „ axis “ darf nicht null sein oder bereits einem anderen Diagramm hinzugefügt worden sein.
Siehe auch „ releaseAxis()“, „ setAxisX()“, „ setAxisY()“ und „ setAxisZ()“.
void Q3DScatter::addSeries(QScatter3DSeries *series)
Fügt die „ 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 bereits vorliegende Auswahl wird aufgehoben. Nur eine der hinzugefügten Reihen kann aktiv ausgewählt sein.
Siehe auch „ QAbstract3DGraph::hasSeries()“.
QList<QValue3DAxis *> Q3DScatter::axes() const
Gibt die Liste aller hinzugefügten Achsen zurück.
Siehe auch „ addAxis()“.
QValue3DAxis *Q3DScatter::axisZ() const
Gibt die verwendete Z-Achse zurück.
Hinweis: Getter -Funktion für die Eigenschaft „axisZ“.
Siehe auch „ setAxisZ()“.
void Q3DScatter::releaseAxis(QValue3DAxis *axis)
Gibt die Eigentumsrechte an der „ axis “ an den Aufrufer zurück, sofern diese zu diesem 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 auch.
Siehe auch „ addAxis()“, „ setAxisX()“, „ setAxisY()“ und „ setAxisZ()“.
void Q3DScatter::removeSeries(QScatter3DSeries *series)
Entfernt den „ series “ aus dem Diagramm.
Siehe auch „ QAbstract3DGraph::hasSeries()“.
QList<QScatter3DSeries *> Q3DScatter::seriesList() const
Gibt die Liste der zu diesem Diagramm hinzugefügten Reihen zurück.
Siehe auch „ QAbstract3DGraph::hasSeries()“.
void Q3DScatter::setAxisX(QValue3DAxis *axis)
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 einem sich automatisch anpassenden Bereich erstellt. Diese temporäre Achse wird gelöscht, wenn eine andere Achse explizit auf dieselbe Ausrichtung gesetzt wird.
Hinweis: Setter -Funktion für die Eigenschaft ` axisX`.
Siehe auch „ axisX()“, „ addAxis()“ und „ releaseAxis()“.
void Q3DScatter::setAxisY(QValue3DAxis *axis)
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 automatisch anpassbarem Bereich erstellt. Diese temporäre Achse wird gelöscht, wenn eine andere Achse explizit auf dieselbe Ausrichtung gesetzt wird.
Hinweis: Setter -Funktion für die Eigenschaft ` axisY`.
Siehe auch „ axisY()“, „ addAxis()“ und „ releaseAxis()“.
void Q3DScatter::setAxisZ(QValue3DAxis *axis)
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.
Hinweis: Setter -Funktion für die Eigenschaft ` axisZ`.
Siehe auch „ axisZ()“, „ addAxis()“ und „ releaseAxis()“.
© 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.