Q3DBarsWidgetItem Class
Die Klasse Q3DBarsWidgetItem bietet Methoden zur Darstellung von 3D-Balkendiagrammen. Mehr...
Kopfzeile: | #include <Q3DBarsWidgetItem> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS GraphsWidgets) target_link_libraries(mytarget PRIVATE Qt6::GraphsWidgets) |
qmake: | QT += graphswidgets |
Vererbungen: | Q3DGraphsWidgetItem |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- Q3DBarsWidgetItem ist Teil von Qt Graphs C++ Classes for Widgets.
Eigenschaften
|
|
Öffentliche Funktionen
Q3DBarsWidgetItem(QObject *parent = nullptr) | |
virtual | ~Q3DBarsWidgetItem() override |
void | addAxis(QAbstract3DAxis *axis) |
void | addSeries(QBar3DSeries *series) |
QList<QAbstract3DAxis *> | axes() const |
QSizeF | barSeriesMargin() const |
QSizeF | barSpacing() const |
float | barThickness() const |
QCategory3DAxis * | columnAxis() const |
float | floorLevel() const |
void | insertSeries(int index, QBar3DSeries *series) |
bool | isBarSpacingRelative() const |
bool | isMultiSeriesUniform() const |
QBar3DSeries * | primarySeries() const |
void | releaseAxis(QAbstract3DAxis *axis) |
void | removeSeries(QBar3DSeries *series) |
QCategory3DAxis * | rowAxis() const |
QBar3DSeries * | selectedSeries() const |
QList<QBar3DSeries *> | seriesList() const |
void | setBarSeriesMargin(QSizeF margin) |
void | setBarSpacing(QSizeF spacing) |
void | setBarSpacingRelative(bool relative) |
void | setBarThickness(float thicknessRatio) |
void | setColumnAxis(QCategory3DAxis *axis) |
void | setFloorLevel(float level) |
void | setMultiSeriesUniform(bool uniform) |
void | setPrimarySeries(QBar3DSeries *series) |
void | setRowAxis(QCategory3DAxis *axis) |
void | setValueAxis(QValue3DAxis *axis) |
QValue3DAxis * | valueAxis() const |
Signale
void | barSeriesMarginChanged(QSizeF margin) |
void | barSpacingChanged(QSizeF spacing) |
void | barSpacingRelativeChanged(bool relative) |
void | barThicknessChanged(float thicknessRatio) |
void | columnAxisChanged(QCategory3DAxis *axis) |
void | floorLevelChanged(float level) |
void | multiSeriesUniformChanged(bool uniform) |
void | primarySeriesChanged(QBar3DSeries *series) |
void | rowAxisChanged(QCategory3DAxis *axis) |
void | selectedSeriesChanged(QBar3DSeries *series) |
void | valueAxisChanged(QValue3DAxis *axis) |
Detaillierte Beschreibung
Diese Klasse ermöglicht es Entwicklern, 3D-Balkendiagramme zu rendern und sie durch freie Rotation der Szene zu betrachten. Die Drehung erfolgt durch Halten der rechten Maustaste und Bewegen der Maus, während das Zoomen mit dem Mausrad durchgeführt wird. 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 für Q3DBarsWidgetItem keine Achsen explizit gesetzt werden, werden temporäre Standardachsen ohne Beschriftung erzeugt. Diese Standardachsen können über Achsen-Accessors geändert werden, aber sobald eine Achse explizit für die Ausrichtung festgelegt wird, wird die Standardachse für diese Ausrichtung zerstört.
Q3DBarsWidgetItem unterstützt mehr als eine sichtbare Serie zur gleichen Zeit. Alle Serien müssen nicht die gleiche Anzahl von Zeilen und Spalten haben. Zeilen- und Spaltenbeschriftungen werden von der ersten hinzugefügten Serie übernommen, sofern sie nicht explizit für Zeilen- und Spaltenachsen definiert wurden.
Q3DBarsWidgetItem unterstützt Transparenz. Diese Funktion ermöglicht es Ihnen, die Deckkraft der Balken einzustellen, so dass sie teilweise durchsichtig, vollständig transparent oder undurchsichtig sind.
So konstruieren Sie ein minimales Q3DBarsWidgetItem-Diagramm
Konstruieren Sie zunächst eine Instanz von Q3DBarsWidgetItem:
QQuickWidget quickWidget; Q3DBarsWidgetItem bars; bars.setWidget(&quickWidget); bars.widget()->setMinimumSize(QSize(256, 256));
Nach der Konstruktion von Q3DBarsWidgetItem können Sie das Datenfenster festlegen, indem Sie den Bereich auf den Zeilen- und Spaltenachsen ändern. Dies ist nicht zwingend erforderlich, da das Datenfenster standardmäßig alle Daten der Reihe anzeigt. Wenn die Datenmenge groß ist, ist es in der Regel besser, nur einen Teil davon anzuzeigen. Legen Sie zum Beispiel fest, dass das Datenfenster die ersten fünf Zeilen und Spalten anzeigt:
bars.rowAxis()->setRange(0, 4); bars.columnAxis()->setRange(0, 4);
Jetzt ist Q3DBarsWidgetItem bereit, Daten zu empfangen, die gerendert werden sollen. Erstellen Sie eine Reihe mit einer Zeile mit 5 Werten:
QBar3DSeries series; QBarDataRow data; data << QBarDataItem(1.0f) << QBarDataItem(3.0f) << QBarDataItem(7.5f) << QBarDataItem(5.0f) << QBarDataItem(2.2f); series.dataProxy()->addRow(data); bars.addSeries(&series);
Hinweis: Wir haben das Datenfenster auf 5 x 5 eingestellt, aber wir fügen nur eine Datenreihe hinzu. Das ist in Ordnung; die restlichen Zeilen werden einfach leer sein.
Schließlich müssen Sie das Fenster sichtbar machen:
bars.widget()->show();
Der gesamte Code, der zum Erstellen und Anzeigen dieses Diagramms erforderlich ist, lautet:
#include <QtGraphs> #include <QtGraphsWidgets/q3dbarswidgetitem.h> #include <QtWidgets/qapplication.h> int main(int argc, char **argv) { QApplication app(argc, argv); QQuickWidget quickWidget; Q3DBarsWidgetItem bars; bars.setWidget(&quickWidget); bars.widget()->setMinimumSize(QSize(256, 256)); bars.rowAxis()->setRange(0, 4); bars.columnAxis()->setRange(0, 4); QBar3DSeries series; QBarDataRow data; data << QBarDataItem(1.0f) << QBarDataItem(3.0f) << QBarDataItem(7.5f) << QBarDataItem(5.0f) << QBarDataItem(2.2f); series.dataProxy()->addRow(data); bars.addSeries(&series); bars.widget()->show(); return app.exec(); }
Und das ist das Ergebnis dieser wenigen Codezeilen:
Die Szene kann gedreht und gezoomt werden, und ein Balken kann ausgewählt werden, um seinen Wert anzuzeigen, aber in diesem minimalen Codebeispiel sind keine weiteren Interaktionen vorgesehen. Sie können mehr lernen, wenn Sie sich mit den mitgelieferten Beispielen vertraut machen, z. B. mit dem einfachen Balkendiagramm.
Siehe auch Q3DScatterWidgetItem, Q3DSurfaceWidgetItem, und Qt Graphs C++-Klassen für 3D.
Dokumentation der Eigenschaften
barSeriesMargin : QSizeF
Abstand zwischen den Spalten der Reihe in den Dimensionen X und Z. Sinnvolle Werte liegen im Bereich [0,1).
Standardmäßig auf (0.0, 0.0)
voreingestellt. Diese Eigenschaft ermöglicht die Anzeige von Balken aus verschiedenen Serien nebeneinander, aber mit einem Abstand zwischen den Spalten.
Zugriffsfunktionen:
QSizeF | barSeriesMargin() const |
void | setBarSeriesMargin(QSizeF margin) |
Melder-Signal:
void | barSeriesMarginChanged(QSizeF margin) |
Siehe auch barSpacing.
barSpacing : QSizeF
Abstand der Balken in den Dimensionen X und Z.
Standardmäßig auf (1.0, 1.0)
voreingestellt. Die Abstände werden von der Eigenschaft barSpacingRelative beeinflusst.
Zugriffsfunktionen:
QSizeF | barSpacing() const |
void | setBarSpacing(QSizeF spacing) |
Melder-Signal:
void | barSpacingChanged(QSizeF spacing) |
Siehe auch barSpacingRelative, multiSeriesUniform, und barSeriesMargin.
barSpacingRelative : bool
Diese Eigenschaft gibt an, ob der Abstand absolut oder relativ zur Balkendicke ist.
Bei true
bedeutet der Wert 0.0
, dass die Balken nebeneinander angeordnet sind, 1.0
bedeutet, dass zwischen den Balken ein Abstand von der Dicke eines Balkens gelassen wird, usw. Voreingestellt auf true
.
Zugriffsfunktionen:
bool | isBarSpacingRelative() const |
void | setBarSpacingRelative(bool relative) |
Melder-Signal:
void | barSpacingRelativeChanged(bool relative) |
barThickness : float
Diese Eigenschaft gibt das Verhältnis der Balkenstärke zwischen den Dimensionen X und Z an.
Der Wert 1.0
bedeutet, dass die Balken so breit wie tief sind, während 0.5
sie doppelt so tief wie breit macht. Standardmäßig auf 1.0
eingestellt.
Zugriffsfunktionen:
float | barThickness() const |
void | setBarThickness(float thicknessRatio) |
Melder-Signal:
void | barThicknessChanged(float thicknessRatio) |
columnAxis : QCategory3DAxis*
Diese Eigenschaft enthält die Achse, die mit der aktiven Spalte verbunden ist.
Setzt die Achse der aktiven Spalte auf axis. Ruft implizit addAxis() auf, um den Besitz der Achse auf dieses Diagramm zu übertragen.
Wenn axis gleich null ist, wird eine temporäre Standardachse ohne Beschriftung erstellt. Diese temporäre Achse wird zerstört, wenn eine andere Achse explizit auf dieselbe Ausrichtung gesetzt wird.
Zugriffsfunktionen:
QCategory3DAxis * | columnAxis() const |
void | setColumnAxis(QCategory3DAxis *axis) |
Benachrichtigungssignal:
void | columnAxisChanged(QCategory3DAxis *axis) |
Siehe auch addAxis() und releaseAxis().
floorLevel : float
Diese Eigenschaft enthält die Bodenhöhe für das Balkendiagramm in Y-Achsen-Datenkoordinaten.
Die tatsächliche Bodenhöhe wird durch die Mindest- und Höchstwerte der Y-Achse begrenzt. Der Standardwert ist Null.
Zugriffsfunktionen:
float | floorLevel() const |
void | setFloorLevel(float level) |
Melder-Signal:
void | floorLevelChanged(float level) |
multiSeriesUniform : bool
Diese Eigenschaft legt fest, ob Balken mit Proportionen skaliert werden sollen, die auf einen einzelnen Serienbalken eingestellt sind, auch wenn mehrere Serien angezeigt werden.
Wenn sie auf true
gesetzt ist, wird bar spacing nur auf die X-Achse korrekt angewendet. Standardmäßig auf false
voreingestellt.
Zugriffsfunktionen:
bool | isMultiSeriesUniform() const |
void | setMultiSeriesUniform(bool uniform) |
Melder-Signal:
void | multiSeriesUniformChanged(bool uniform) |
primarySeries : QBar3DSeries*
Diese Eigenschaft enthält die primäre Reihe des Diagramms.
Legt series als primäre Reihe des Diagramms fest. Die primäre Serie bestimmt die Zeilen- und Spaltenachsenbeschriftungen, wenn die Beschriftungen nicht explizit auf die Achsen gesetzt sind.
Wenn die angegebene Reihe noch nicht zum Diagramm hinzugefügt wurde, wird sie durch die Festlegung als primäre Reihe auch implizit zum Diagramm hinzugefügt.
Wenn die primäre Reihe selbst aus dem Diagramm entfernt wird, wird diese Eigenschaft auf den Standardwert zurückgesetzt.
Wenn series null ist, wird diese Eigenschaft auf den Standardwert zurückgesetzt. Der Standardwert ist die erste hinzugefügte Reihe oder Null, wenn dem Diagramm keine Reihen hinzugefügt werden.
Zugriffsfunktionen:
QBar3DSeries * | primarySeries() const |
void | setPrimarySeries(QBar3DSeries *series) |
Benachrichtigungssignal:
void | primarySeriesChanged(QBar3DSeries *series) |
rowAxis : QCategory3DAxis*
Diese Eigenschaft enthält die mit der aktiven Zeile verbundene Achse.
Setzt die Achse der aktiven Zeile auf axis. Ruft implizit addAxis() auf, um den Besitz der Achse auf dieses Diagramm zu übertragen.
Wenn axis gleich Null ist, wird eine temporäre Standardachse ohne Beschriftung erstellt. Diese temporäre Achse wird zerstört, wenn eine andere Achse explizit auf dieselbe Ausrichtung gesetzt wird.
Zugriffsfunktionen:
QCategory3DAxis * | rowAxis() const |
void | setRowAxis(QCategory3DAxis *axis) |
Benachrichtigungssignal:
void | rowAxisChanged(QCategory3DAxis *axis) |
Siehe auch addAxis() und releaseAxis().
[read-only]
selectedSeries : QBar3DSeries* const
Diese Eigenschaft enthält die ausgewählte Serie oder einen Nullwert.
Wenn bei selectionMode das Flag SelectionMultiSeries
gesetzt ist, enthält diese Eigenschaft die Serie, die den ausgewählten Balken besitzt.
Zugriffsfunktionen:
QBar3DSeries * | selectedSeries() const |
Benachrichtigungssignal:
void | selectedSeriesChanged(QBar3DSeries *series) |
valueAxis : QValue3DAxis*
Setzt die aktive Wertachse (die Y-Achse) auf axis. Ruft implizit addAxis() auf, um die Eigentümerschaft von axis 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 * | valueAxis() const |
void | setValueAxis(QValue3DAxis *axis) |
Notifier-Signal:
void | valueAxisChanged(QValue3DAxis *axis) |
Siehe auch addAxis() und releaseAxis().
Dokumentation der Mitgliedsfunktionen
[explicit]
Q3DBarsWidgetItem::Q3DBarsWidgetItem(QObject *parent = nullptr)
Konstruiert ein neues 3D-Balkendiagramm mit dem optionalen parent.
[override virtual noexcept]
Q3DBarsWidgetItem::~Q3DBarsWidgetItem()
Zerstört das 3D-Balkendiagramm.
void Q3DBarsWidgetItem::addAxis(QAbstract3DAxis *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(), setValueAxis(), setRowAxis(), und setColumnAxis().
void Q3DBarsWidgetItem::addSeries(QBar3DSeries *series)
Fügt die series zum Diagramm hinzu. Ein Diagramm kann mehrere Reihen, aber nur einen Satz Achsen enthalten, so dass die Zeilen und Spalten aller Reihen übereinstimmen müssen, damit die visualisierten Daten sinnvoll sind. Wenn das Diagramm mehrere sichtbare Reihen enthält, erzeugt nur die primäre Reihe die Zeilen- oder Spaltenbeschriftungen auf den Achsen, wenn die Beschriftungen nicht explizit für die Achsen festgelegt wurden. Wenn für die neu hinzugefügte Reihe ein ausgewählter Balken angegeben wurde, wird dieser hervorgehoben, und eine vorhandene Auswahl wird gelöscht. Nur eine hinzugefügte Reihe kann eine aktive Auswahl haben.
Siehe auch seriesList(), primarySeries, und Q3DGraphsWidgetItem::hasSeries().
QList<QAbstract3DAxis *> Q3DBarsWidgetItem::axes() const
Gibt die Liste aller hinzugefügten Achsen zurück.
Siehe auch addAxis().
void Q3DBarsWidgetItem::insertSeries(int index, QBar3DSeries *series)
Fügt series an der Position index in die Serienliste ein. Wurde die Reihe series bereits in die Liste aufgenommen, wird sie an die neue Position index verschoben.
Hinweis: Wenn eine Reihe an eine neue index verschoben wird, die nach ihrem alten Index liegt, wird die neue Position in der Liste so berechnet, als befände sich die Reihe noch an ihrem alten Index, so dass der endgültige Index tatsächlich der um eins verminderte index ist.
Siehe auch addSeries(), seriesList(), und Q3DGraphsWidgetItem::hasSeries().
void Q3DBarsWidgetItem::releaseAxis(QAbstract3DAxis *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(), setValueAxis(), setRowAxis(), und setColumnAxis().
void Q3DBarsWidgetItem::removeSeries(QBar3DSeries *series)
Entfernt die series aus dem Diagramm.
Siehe auch Q3DGraphsWidgetItem::hasSeries().
QList<QBar3DSeries *> Q3DBarsWidgetItem::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.