qt QGraphicsView画直方图
时间: 2023-05-13 10:06:21 浏览: 353
可以使用QGraphicsScene和QGraphicsRectItem来实现直方图的绘制。首先,创建一个QGraphicsScene对象,然后在场景中添加多个QGraphicsRectItem对象,每个矩形代表一个数据点。可以使用QPainter来设置矩形的颜色和大小。最后,将场景设置为QGraphicsView的场景,即可显示直方图。
以下是示例代码:
QGraphicsScene *scene = new QGraphicsScene();
QGraphicsView *view = new QGraphicsView(scene);
// 数据点
QVector<int> data = {1, 2, 3, 4, 5};
// 矩形宽度
int rectWidth = 20;
// 计算矩形高度
int maxHeight = view->height() - 20;
int maxData = *std::max_element(data.begin(), data.end());
double scale = (double)maxHeight / maxData;
// 添加矩形
int x = 0;
for (int d : data) {
int height = d * scale;
QGraphicsRectItem *rect = new QGraphicsRectItem(x, maxHeight - height, rectWidth, height);
rect->setBrush(QBrush(Qt::red));
scene->addItem(rect);
x += rectWidth;
}
// 显示场景
view->show();
注意:以上代码仅为示例,实际应用中需要根据具体需求进行修改和优化。
阅读全文