Q3DBarsWidgetItem Class
La classe Q3DBarsWidgetItem fournit des méthodes permettant d'afficher des graphiques à barres en 3D. En savoir plus...
| En-tête : | #include <Q3DBarsWidgetItem> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS GraphsWidgets) target_link_libraries(mytarget PRIVATE Qt6::GraphsWidgets) |
| qmake : | QT += graphswidgets |
| Hérite de : | Q3DGraphsWidgetItem |
- Liste de tous les membres, y compris les membres hérités
- Q3DBarsWidgetItem fait partie des classes C++ pour widgets d’Qt Graphs .
Propriétés
|
|
Fonctions publiques
| 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) |
(since 6.10) void | renderSliceToImage(int requestedIndex, QtGraphs3D::SliceCaptureType sliceType) |
| QCategory3DAxis * | rowAxis() const |
| QBar3DSeries * | selectedSeries() const |
| QList<QBar3DSeries *> | seriesList() const |
| QValue3DAxis * | valueAxis() const |
Emplacements publics
| 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) |
Signaux
| 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) |
(since 6.10) void | sliceImageChanged(const QImage &image) |
| void | valueAxisChanged(QValue3DAxis *axis) |
Description détaillée
Cette classe permet aux développeurs de générer des graphiques à barres en 3D et de les visualiser en faisant pivoter librement la scène. La rotation s'effectue en maintenant le bouton droit de la souris enfoncé et en déplaçant la souris, tandis que le zoom s'effectue à l'aide de la molette de la souris. Si cette option est activée, la sélection s'effectue avec le bouton gauche de la souris. La scène peut être réinitialisée à la vue par défaut de la caméra en cliquant sur la molette de la souris. Sur les appareils tactiles, la rotation s'effectue par « tap-and-move », la sélection par « tap-and-hold » et le zoom par « pinch ».
Si aucun axe n’est défini explicitement pour Q3DBarsWidgetItem, des axes par défaut temporaires sans libellé sont créés. Ces axes par défaut peuvent être modifiés via les accesseurs d’axe, mais dès qu’un axe est défini explicitement pour une orientation, l’axe par défaut correspondant à cette orientation est supprimé.
Q3DBarsWidgetItem prend en charge plusieurs séries visibles simultanément. Il n'est pas nécessaire que toutes les séries aient le même nombre de lignes et de colonnes. Les libellés des lignes et des colonnes sont repris de la première série ajoutée, sauf s'ils sont explicitement définis pour les axes des lignes et des colonnes.
Q3DBarsWidgetItem prend en charge la transparence. Cette fonctionnalité vous permet de régler l’opacité des barres, afin de les rendre partiellement transparentes, entièrement transparentes ou opaques.
Comment créer un graphique Q3DBarsWidgetItem minimal
Commencez par créer une instance de Q3DBarsWidgetItem :
QQuickWidget quickWidget;
Q3DBarsWidgetItem bars;
bars.setWidget(&quickWidget);
bars.widget()->setMinimumSize(QSize(256, 256));Une fois Q3DBarsWidgetItem créé, vous pouvez définir la fenêtre de données en modifiant la plage sur les axes des lignes et des colonnes. Cette étape n’est pas obligatoire, car la fenêtre de données affiche par défaut l’intégralité des données de la série. Si le volume de données est important, il est généralement préférable de n’en afficher qu’une partie. Par exemple, configurons la fenêtre de données pour qu’elle affiche les cinq premières lignes et colonnes :
bars.rowAxis()->setRange(0, 4);
bars.columnAxis()->setRange(0, 4);À présent, Q3DBarsWidgetItem est prêt à recevoir les données à afficher. Créez une série comportant une ligne de 5 valeurs :
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);Remarque : nous avons défini la fenêtre de données sur 5 x 5, mais nous n’ajoutons qu’une seule ligne de données. Ce n’est pas grave ; les autres lignes resteront simplement vides.
Enfin, vous devrez le rendre visible :
bars.widget()->show();Le code complet nécessaire pour créer et afficher ce graphique est le suivant :
#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();
}Et voici le résultat obtenu avec ces quelques lignes de code :

La scène peut être pivotée, agrandie, et il est possible de sélectionner une barre pour afficher sa valeur, mais cet exemple de code minimal ne comprend aucune autre interaction. Vous pouvez en apprendre davantage en vous familiarisant avec les exemples fournis, comme le « Simple Bar Graph ».
Voir également Q3DScatterWidgetItem, Q3DSurfaceWidgetItem et Qt Graphs Classes C++ pour la 3D.
Documentation sur les propriétés
barSeriesMargin : QSizeF
Marge entre les colonnes des séries dans les dimensions X et Z. Les valeurs recommandées se situent dans l'intervalle [0, 1).
La valeur par défaut est (0.0, 0.0). Cette propriété permet d'afficher côte à côte les barres de différentes séries, tout en conservant un espace entre les colonnes.
Fonctions d'accès :
| QSizeF | barSeriesMargin() const |
| void | setBarSeriesMargin(QSizeF margin) |
Signal de notification :
| void | barSeriesMarginChanged(QSizeF margin) |
Voir également barSpacing.
barSpacing : QSizeF
Espacement des barres dans les axes X et Z.
Réglage par défaut : (1.0, 1.0). L'espacement est influencé par la propriété « barSpacingRelative ».
Fonctions d'accès :
| QSizeF | barSpacing() const |
| void | setBarSpacing(QSizeF spacing) |
Signal de notification :
| void | barSpacingChanged(QSizeF spacing) |
Voir également barSpacingRelative, multiSeriesUniform et barSeriesMargin.
barSpacingRelative : bool
Cette propriété s'applique que l'espacement soit absolu ou relatif à l'épaisseur des barres.
Si elle est définie sur « true », la valeur « 0.0 » signifie que les barres sont placées côte à côte, « 1.0 » signifie qu’un espace de la largeur de l’épaisseur d’une barre est laissé entre les barres, et ainsi de suite. La valeur par défaut est « true ».
Fonctions d'accès :
| bool | isBarSpacingRelative() const |
| void | setBarSpacingRelative(bool relative) |
Signal de notification :
| void | barSpacingRelativeChanged(bool relative) |
barThickness : float
Cette propriété définit le rapport d'épaisseur de la barre entre les dimensions X et Z.
La valeur « 1.0 » signifie que les barres ont une largeur égale à leur profondeur, tandis que « 0.5 » leur confère une profondeur deux fois supérieure à leur largeur. La valeur par défaut est « 1.0 ».
Fonctions d’accès :
| float | barThickness() const |
| void | setBarThickness(float thicknessRatio) |
Signal de notification :
| void | barThicknessChanged(float thicknessRatio) |
columnAxis : QCategory3DAxis*
Cette propriété contient l'axe associé à la colonne active.
Définit l'axe de la colonne active sur axis. Appelle implicitement la méthode addAxis() pour transférer la propriété de l'axe à ce graphique.
Si axis est nul, un axe temporaire par défaut sans étiquettes est créé. Cet axe temporaire est détruit si un autre axe est explicitement défini avec la même orientation.
Fonctions d’accès :
| QCategory3DAxis * | columnAxis() const |
| void | setColumnAxis(QCategory3DAxis *axis) |
Signal de notification :
| void | columnAxisChanged(QCategory3DAxis *axis) |
Voir également addAxis() et releaseAxis().
floorLevel : float
Cette propriété définit le niveau minimal du graphique à barres selon les coordonnées de l'axe Y.
Le niveau de base réel sera limité par les valeurs minimales et maximales de l'axe Y. La valeur par défaut est zéro.
Fonctions d'accès :
| float | floorLevel() const |
| void | setFloorLevel(float level) |
Signal de notification :
| void | floorLevelChanged(float level) |
multiSeriesUniform : bool
Cette propriété s'applique que les barres soient mises à l'échelle selon les proportions définies pour une seule série, même si plusieurs séries sont affichées.
Si la valeur est définie sur « true », l’option « bar spacing » ne s’appliquera correctement qu’à l’axe X. La valeur par défaut est « false ».
Fonctions d'accès :
| bool | isMultiSeriesUniform() const |
| void | setMultiSeriesUniform(bool uniform) |
Signal de notification :
| void | multiSeriesUniformChanged(bool uniform) |
primarySeries : QBar3DSeries*
Cette propriété définit la série principale du graphique.
Définit series comme série principale du graphique. La série principale détermine les libellés des axes des lignes et des colonnes lorsque ceux-ci ne sont pas explicitement définis sur les axes.
Si la série spécifiée n’est pas encore ajoutée au graphique, le fait de la définir comme série principale entraîne également son ajout implicite au graphique.
Si la série principale elle-même est supprimée du graphique, cette propriété revient à sa valeur par défaut.
Si series est nul, cette propriété revient à sa valeur par défaut. La valeur par défaut est la première série ajoutée ou zéro si aucune série n’a été ajoutée au graphique.
Fonctions d’accès :
| QBar3DSeries * | primarySeries() const |
| void | setPrimarySeries(QBar3DSeries *series) |
Signal de notification :
| void | primarySeriesChanged(QBar3DSeries *series) |
rowAxis : QCategory3DAxis*
Cette propriété contient l'axe associé à la ligne active.
Définit l’axe de la ligne active sur axis. Appelle implicitement la méthode addAxis() pour transférer la propriété de l’axe à ce graphique.
Si axis est nul, un axe temporaire par défaut sans étiquettes est créé. Cet axe temporaire est détruit si un autre axe est explicitement défini avec la même orientation.
Fonctions d’accès :
| QCategory3DAxis * | rowAxis() const |
| void | setRowAxis(QCategory3DAxis *axis) |
Signal de notification :
| void | rowAxisChanged(QCategory3DAxis *axis) |
Voir également addAxis() et releaseAxis().
[read-only] selectedSeries : QBar3DSeries*
Cette propriété contient la série sélectionnée ou une valeur nulle.
Si le paramètre selectionMode est associé au drapeau « SelectionMultiSeries », cette propriété contient la série à laquelle appartient la barre sélectionnée.
Fonctions d'accès :
| QBar3DSeries * | selectedSeries() const |
Signal de notification :
| void | selectedSeriesChanged(QBar3DSeries *series) |
valueAxis : QValue3DAxis*
Définit l'axe de valeur actif (l'axe Y) sur ` axis`. Appelle implicitement la méthode ` addAxis()` pour transférer la propriété de ` axis ` à ce graphique.
Si axis est nul, un axe temporaire par défaut, sans étiquettes et dont la plage s’ajuste automatiquement, est créé. Cet axe temporaire est détruit si un autre axe est explicitement défini avec la même orientation.
Fonctions d’accès :
| QValue3DAxis * | valueAxis() const |
| void | setValueAxis(QValue3DAxis *axis) |
Signal de notification :
| void | valueAxisChanged(QValue3DAxis *axis) |
Voir également addAxis() et releaseAxis().
Documentation des fonctions membres
[explicit] Q3DBarsWidgetItem::Q3DBarsWidgetItem(QObject *parent = nullptr)
Crée un nouveau graphique à barres en 3D avec l'parent, facultative.
[override virtual noexcept] Q3DBarsWidgetItem::~Q3DBarsWidgetItem()
Supprime le graphique à barres en 3D.
void Q3DBarsWidgetItem::addAxis(QAbstract3DAxis *axis)
axis Ajoute l'axis au graphe. Les axes ajoutés via addAxis ne sont pas encore utilisés ; la méthode addAxis sert simplement à attribuer la propriété de l' au graphe. L'axis ne doit pas être nul ni avoir été ajouté à un autre graphe.
Voir également releaseAxis(), setValueAxis(), setRowAxis() et setColumnAxis().
void Q3DBarsWidgetItem::addSeries(QBar3DSeries *series)
Ajoute l'series e au graphique. Un graphique peut contenir plusieurs séries, mais un seul jeu d'axes ; les lignes et les colonnes de toutes les séries doivent donc correspondre pour que les données visualisées aient un sens. Si le graphique comporte plusieurs séries visibles, seule la série principale générera les étiquettes de ligne ou de colonne sur les axes lorsque celles-ci ne sont pas explicitement définies pour les axes. Si la série nouvellement ajoutée a spécifié une barre sélectionnée, celle-ci sera mise en surbrillance et toute sélection existante sera effacée. Une seule série ajoutée peut avoir une sélection active.
Voir également seriesList(), primarySeries et Q3DGraphsWidgetItem::hasSeries().
QList<QAbstract3DAxis *> Q3DBarsWidgetItem::axes() const
Renvoie la liste de tous les axes ajoutés.
Voir aussi addAxis().
void Q3DBarsWidgetItem::insertSeries(int index, QBar3DSeries *series)
Insère l’ series à la position index dans la liste des séries. Si l’ series a déjà été ajoutée à la liste, elle est déplacée vers la nouvelle index.
Remarque : lors du déplacement d’une série vers un nouvel index situé après son ancien index, la nouvelle position dans la liste est calculée comme si la série se trouvait toujours à son ancien index ; l’index final correspond donc en réalité à index diminué d’une unité.
Voir également addSeries(), seriesList() et Q3DGraphsWidgetItem::hasSeries().
void Q3DBarsWidgetItem::releaseAxis(QAbstract3DAxis *axis)
Restitue la propriété de l'axe « axis » à l'appelant, s'il est ajouté à ce graphe. Si l'axe « axis » restitué est en cours d'utilisation, un nouvel axe par défaut sera créé et activé.
Si l’axe par défaut est libéré puis rajouté ultérieurement, il se comporte comme n’importe quel autre axe.
Voir également addAxis(), setValueAxis(), setRowAxis() et setColumnAxis().
void Q3DBarsWidgetItem::removeSeries(QBar3DSeries *series)
Supprime l'series e du graphe.
Voir aussi Q3DGraphsWidgetItem::hasSeries().
[since 6.10] void Q3DBarsWidgetItem::renderSliceToImage(int requestedIndex, QtGraphs3D::SliceCaptureType sliceType)
Exporte la vue de coupe demandée vers une image. La coupe exportée est constituée de barres de lignes ou de colonnes, définies par ` sliceType`, à une position donnée ` requestedIndex`.
Le signal ` sliceImageChanged ` est émis lorsque l’image est prête et peut être capturé comme suit :
connect(item, &Q3DBarsWidgetItem::sliceImageChanged, this, [](const QImage &image) {
// ~~~
});
item->renderSliceToImage(sliceType, index);L'image est rendue avec les paramètres d'anticrénelage actuels.
Cette fonction a été introduite dans Qt 6.10.
Voir également QQuickItem::grabToImage() et sliceImageChanged().
QList<QBar3DSeries *> Q3DBarsWidgetItem::seriesList() const
Renvoie la liste des séries ajoutées à ce graphique.
Voir aussi Q3DGraphsWidgetItem::hasSeries().
[signal, since 6.10] void Q3DBarsWidgetItem::sliceImageChanged(const QImage &image)
Émis lorsque « renderSliceToImage » a préparé le fichier « image ».
Cette fonction a été introduite dans Qt 6.10.
© 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.