Q3DScatter Class
Die Klasse Q3DScatter bietet Methoden zum Rendern von 3D-Streudiagrammen. Mehr...
Kopfzeile: | #include <Q3DScatter> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS DataVisualization) target_link_libraries(mytarget PRIVATE Qt6::DataVisualization) |
qmake: | QT += datavisualization |
Since: | QtDataVisualization 1.0 |
Vererbt: | QAbstract3DGraph |
Eigenschaften
- axisX : QValue3DAxis*
- axisY : QValue3DAxis*
- axisZ : QValue3DAxis*
- selectedSeries : QScatter3DSeries* const
Ö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) |
Detaillierte Beschreibung
Diese Klasse ermöglicht es Entwicklern, Streudiagramme in 3D darzustellen und sie durch freie Drehung der Szene zu betrachten. Das Drehen erfolgt durch Halten der rechten Maustaste und Bewegen der Maus. Das Zoomen erfolgt mit dem Mausrad. Die Auswahl, falls aktiviert, erfolgt mit der linken Maustaste. Die Szene kann durch Klicken auf das Mausrad auf die Standardkameraansicht zurückgesetzt werden. Bei Touch-Geräten erfolgt die Drehung durch Tippen und Bewegen, die Auswahl durch Tippen und Halten und der Zoom durch Aufziehen.
Wenn keine Achsen explizit auf Q3DScatter gesetzt werden, werden temporäre Standardachsen ohne Beschriftung erzeugt. Diese Standardachsen können über Achsenzugriffe verändert werden, aber sobald eine Achse explizit für die Orientierung gesetzt wird, wird die Standardachse für diese Orientierung zerstört.
Q3DScatter unterstützt mehr als eine gleichzeitig sichtbare Serie.
So konstruiert man ein minimales Q3DScatter-Diagramm
Konstruieren Sie zunächst Q3DScatter. Da wir den Graphen in diesem Beispiel als Top-Level-Fenster ausführen, müssen wir das Qt::FramelessWindowHint
-Flag löschen, das standardmäßig gesetzt wird:
Q3DScatter scatter; scatter.setFlags(scatter.flags() ^ Qt::FramelessWindowHint);
Jetzt ist Q3DScatter bereit, Daten zu empfangen, die gerendert werden sollen. Fügen Sie eine Serie von 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);
Zum Schluss müssen Sie sie sichtbar machen:
scatter.show();
Der gesamte Code, der zum Erstellen und Anzeigen dieses Diagramms benötigt wird, 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 kann gedreht und gezoomt werden, und ein Element kann ausgewählt werden, um seine Position zu sehen, aber in diesem minimalen Codebeispiel ist keine andere Interaktion vorgesehen. Sie können mehr lernen, wenn Sie sich mit den mitgelieferten Beispielen vertraut machen, z. B. mit dem Punktediagramm.
Siehe auch Q3DBars, Q3DSurface, und Qt Data Visualization C++ Classes.
Dokumentation der Eigenschaften
axisX : QValue3DAxis*
Diese Eigenschaft enthält die aktive x-Achse.
Zugriffsfunktionen:
QValue3DAxis * | axisX() const |
void | setAxisX(QValue3DAxis *axis) |
Melder-Signal:
void | axisXChanged(QValue3DAxis *axis) |
axisY : QValue3DAxis*
Diese Eigenschaft enthält die aktive y-Achse.
Zugriffsfunktionen:
QValue3DAxis * | axisY() const |
void | setAxisY(QValue3DAxis *axis) |
Melder-Signal:
void | axisYChanged(QValue3DAxis *axis) |
axisZ : QValue3DAxis*
Diese Eigenschaft enthält die aktive Z-Achse.
Zugriffsfunktionen:
Melder-Signal:
void | axisZChanged(QValue3DAxis *axis) |
[read-only]
selectedSeries : QScatter3DSeries* const
Diese Eigenschaft enthält die ausgewählte Serie oder Null.
Zugriffsfunktionen:
QScatter3DSeries * | selectedSeries() const |
Benachrichtigungssignal:
void | selectedSeriesChanged(QScatter3DSeries *series) |
Member Function Dokumentation
[explicit]
Q3DScatter::Q3DScatter(const QSurfaceFormat *format = nullptr, QWindow *parent = nullptr)
Konstruiert ein neues 3D-Punktdiagramm mit optionalem parent Fenster und Oberfläche format.
[virtual noexcept]
Q3DScatter::~Q3DScatter()
Zerstört das 3D-Punktediagramm.
void Q3DScatter::addAxis(QValue3DAxis *axis)
Fügt axis zum Diagramm hinzu. Die über addAxis hinzugefügten Achsen werden noch nicht verwendet. addAxis wird lediglich verwendet, um dem Diagramm die Eigentümerschaft an axis zu übertragen. Die axis darf nicht null sein oder einem anderen Graphen hinzugefügt werden.
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, hat aber nur einen Achsensatz. Wenn die neu hinzugefügte Reihe ein ausgewähltes Element angegeben hat, wird es hervorgehoben und eine vorhandene Auswahl wird gelöscht. Nur eine hinzugefügte Reihe kann eine aktive Auswahl haben.
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 das Eigentum an axis an den Aufrufer zurück, wenn es zu diesem Diagramm hinzugefügt wurde. Wenn die freigegebene axis verwendet wird, wird eine neue Standardachse erstellt und aktiv gesetzt.
Wenn die Standardachse freigegeben und später wieder hinzugefügt wird, verhält sie sich wie jede andere Achse auch.
Siehe auch addAxis(), setAxisX(), setAxisY(), und setAxisZ().
void Q3DScatter::removeSeries(QScatter3DSeries *series)
Entfernt die series aus dem Diagramm.
Siehe auch QAbstract3DGraph::hasSeries().
QList<QScatter3DSeries *> Q3DScatter::seriesList() const
Gibt die Liste der zu diesem Diagramm hinzugefügten Serien zurück.
Siehe auch QAbstract3DGraph::hasSeries().
void Q3DScatter::setAxisX(QValue3DAxis *axis)
Legt axis als aktive x-Achse fest. Ruft implizit addAxis() auf, um das Eigentum an der Achse auf dieses Diagramm zu übertragen.
Wenn axis gleich Null ist, wird eine temporäre Standardachse ohne Beschriftung und mit einem sich automatisch anpassenden Bereich erstellt. Diese temporäre Achse wird zerstört, 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 das Eigentum an der Achse auf dieses Diagramm zu übertragen.
Wenn axis gleich Null ist, wird eine temporäre Standardachse ohne Beschriftung und mit einem sich automatisch anpassenden Bereich erstellt. Diese temporäre Achse wird zerstört, 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 das Eigentum an der Achse auf dieses Diagramm zu übertragen.
Wenn axis gleich Null ist, wird eine temporäre Standardachse ohne Beschriftung und mit einem sich automatisch anpassenden Bereich erstellt. Diese temporäre Achse wird zerstört, wenn eine andere Achse explizit auf dieselbe Ausrichtung gesetzt wird.
Hinweis: Setter-Funktion für die Eigenschaft axisZ.
Siehe auch axisZ(), addAxis(), und releaseAxis().
© 2025 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.