Q3DScatterWidgetItem Class
Die Klasse Q3DScatterWidgetItem bietet Methoden zur Darstellung von 3D-Streudiagrammen. Mehr...
Kopfzeile: | #include <Q3DScatterWidgetItem> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS GraphsWidgets) target_link_libraries(mytarget PRIVATE Qt6::GraphsWidgets) |
qmake: | QT += graphswidgets |
Vererbt: | Q3DGraphsWidgetItem |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- Q3DScatterWidgetItem ist Teil von Qt Graphs C++ Classes for Widgets.
Eigenschaften
- axisX : QValue3DAxis*
- axisY : QValue3DAxis*
- axisZ : QValue3DAxis*
- selectedSeries : QScatter3DSeries* const
Ö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 |
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, 3D-Punktdiagramme zu rendern und sie durch freie Drehung der Szene zu betrachten. Das Drehen erfolgt durch Halten der rechten Maustaste und Bewegen der Maus, während das Zoomen mit dem Mausrad erfolgt. Wenn aktiviert, wird die Auswahl mit der linken Maustaste durchgeführt. Die Szene kann durch Anklicken des Mausrads auf die Standard-Kameraansicht zurückgesetzt werden. Auf Touch-Geräten wird die Drehung durch Tippen und Bewegen, die Auswahl durch Tippen und Halten und das Zoomen durch Aufziehen erreicht.
Wenn keine Achsen explizit auf Q3DScatterWidgetItem gesetzt werden, werden temporäre Standardachsen ohne Beschriftung erstellt. Diese Standardachsen können über Achsenzugriffe verändert werden, aber sobald eine Achse explizit für die Ausrichtung gesetzt wird, wird die Standardachse für diese Ausrichtung zerstört.
Q3DScatterWidgetItem unterstützt mehr als eine Serie, die zur gleichen Zeit sichtbar ist.
Q3DScatterWidgetItem unterstützt Transparenz. Mit dieser Funktion können Sie die Deckkraft der Streupunkte einstellen und sie teilweise durchsichtig, vollständig durchsichtig oder undurchsichtig machen.
Wie konstruiert man ein minimales Q3DScatterWidgetItem Diagramm
Konstruieren Sie zunächst Q3DScatterWidgetItem. 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 ist:
QQuickWidget quickWidget; Q3DScatterWidgetItem scatter; scatter.setWidget(&quickWidget); scatter.widget()->setMinimumSize(QSize(256, 256));
Jetzt ist Q3DScatterWidgetItem bereit, Daten zu empfangen, die gerendert werden sollen. Fügen Sie eine Serie von 3 QVector3D Elementen hinzu:
Hinweis: In der neuen Proxy-Serien-Beziehung werden die Daten in Serien gehalten. Damit der Proxy in der Lage ist, Daten hinzuzufügen, zu löschen oder zu bearbeiten, ist es daher erforderlich, zunächst eine Serie zu erstellen.
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);
Schließlich müssen Sie sie sichtbar machen:
scatter.widget()->show();
Der gesamte Code, der zum Erstellen und Anzeigen dieses Diagramms benötigt wird, 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:
Die Szene kann gedreht und gezoomt werden, und ein Element kann ausgewählt werden, um seine Position zu sehen, aber andere Interaktionen sind in diesem minimalen Codebeispiel nicht vorgesehen. Sie können mehr lernen, wenn Sie sich mit den mitgelieferten Beispielen vertraut machen, z. B. mit dem einfachen Streudiagramm.
Siehe auch Q3DBarsWidgetItem, Q3DSurfaceWidgetItem, und Qt Graphs C++-Klassen für 3D.
Dokumentation der Eigenschaften
axisX : QValue3DAxis*
Diese Eigenschaft enthält die aktive x-Achse.
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.
Zugriffsfunktionen:
QValue3DAxis * | axisX() const |
void | setAxisX(QValue3DAxis *axis) |
Notifier-Signal:
void | axisXChanged(QValue3DAxis *axis) |
Siehe auch addAxis() und releaseAxis().
axisY : QValue3DAxis*
Diese Eigenschaft enthält die aktive y-Achse.
Legt axis als die 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.
Zugriffsfunktionen:
QValue3DAxis * | axisY() const |
void | setAxisY(QValue3DAxis *axis) |
Notifier-Signal:
void | axisYChanged(QValue3DAxis *axis) |
Siehe auch addAxis() und releaseAxis().
axisZ : QValue3DAxis*
Diese Eigenschaft enthält die aktive Z-Achse.
Legt axis als die 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 automatisch angepassten Bereich erstellt. Diese temporäre Achse wird zerstört, 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* const
Diese Eigenschaft enthält die ausgewählte Serie oder Null.
Zugriffsfunktionen:
QScatter3DSeries * | selectedSeries() const |
Benachrichtigungssignal:
void | selectedSeriesChanged(QScatter3DSeries *series) |
Member Function Dokumentation
[explicit]
Q3DScatterWidgetItem::Q3DScatterWidgetItem(QObject *parent = nullptr)
Konstruiert ein neues 3D-Punktdiagramm mit dem optionalen parent.
[override virtual noexcept]
Q3DScatterWidgetItem::~Q3DScatterWidgetItem()
Zerstört das 3D-Punktediagramm.
void Q3DScatterWidgetItem::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 Q3DScatterWidgetItem::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 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 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 Q3DScatterWidgetItem::removeSeries(QScatter3DSeries *series)
Entfernt die series aus dem Diagramm.
Siehe auch Q3DGraphsWidgetItem::hasSeries().
QList<QScatter3DSeries *> Q3DScatterWidgetItem::seriesList() const
Gibt die Liste der zu diesem Diagramm hinzugefügten Serien zurück.
Siehe auch Q3DGraphsWidgetItem::hasSeries().
© 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.