qt QGraphicsView建立坐标系画直方图
时间: 2023-05-13 20:06:23 浏览: 310
可以使用 QGraphicsScene 和 QGraphicsRectItem 来实现直方图的绘制。首先,需要创建一个 QGraphicsScene 对象,并将其设置为 QGraphicsView 的场景。然后,可以使用 QGraphicsRectItem 来绘制直方图的每个条形。具体实现可以参考以下代码:
```cpp
QGraphicsScene* scene = new QGraphicsScene(this);
ui->graphicsView->setScene(scene);
// 绘制坐标系
QPen pen(Qt::black);
QGraphicsLineItem* xAxis = scene->addLine(0, 0, 200, 0, pen);
QGraphicsLineItem* yAxis = scene->addLine(0, 0, 0, 200, pen);
// 绘制直方图
QVector<int> data = {10, 20, 30, 40, 50};
int barWidth = 20;
int x = 0;
for (int i = 0; i < data.size(); ++i) {
int height = data[i];
QGraphicsRectItem* bar = scene->addRect(x, -height, barWidth, height, pen);
x += barWidth + 10;
}
```
这段代码会在 QGraphicsView 中绘制一个简单的直方图,其中 data 数组表示每个条形的高度,barWidth 表示每个条形的宽度,x 表示每个条形的 x 坐标。
阅读全文