介绍:Q3DBars是一个可视化3D条形图,可以通过鼠标自由移动视角。
1.官方例程
Q3DBars bars;
bars.setMinimumSize(QSize(256, 256));
bars.rowAxis()->setRange(0, 4);
bars.columnAxis()->setRange(0, 4);
QBar3DSeries *series = new QBar3DSeries;
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.show();
上述例程如果直接复制到你的QT代码中会直接报错,addRow会提示参数类型错误,在Qt6.7版本中addRow要求的参数类型是QBarDataRow指针。
2.使用过程中的其他问题
在官方文档中Q3DBars是从QAbstract3DGraph Class继承过来的,而QAbstract3DGraph Class是继承QWidget。理论上说可以在QWidget和QMaindow作为父对象,在构造函数使用Q3DBars。
但是在QT creator中打开QAbstract3DGraph的库函数继承的是QWindow。所以目前简单使用Q3DBars只能构造一个QWindow类作为父类,或者直接在main函数中构造使用。
class Q_DATAVISUALIZATION_EXPORT QAbstract3DGraph : public QWindow, protected QOpenGLFunctions
explicit Q3DBars(const QSurfaceFormat *format = nullptr, QWindow *parent = nullptr);
初学QT,有错误的地方请大神指出。