在QT中,可以使用QGraphicsView和QGraphicsScene来创建饼图。以下是一个简单的例子:
cpp复制代码
#include | |
#include | |
#include | |
// 创建饼图 | |
QGraphicsView *createPieChart() | |
{ | |
// 创建一个新的视图 | |
QGraphicsView *view = new QGraphicsView; | |
// 创建一个新的场景 | |
QGraphicsScene *scene = new QGraphicsScene; | |
// 在场景中添加饼图切片 | |
QGraphicsPieSlice *slice1 = new QGraphicsPieSlice; | |
slice1->setRect(0, 0, 100, 100); | |
slice1->setPieRect(QRectF(0, 0, 100, 100)); | |
slice1->setStartAngle(90 * 16); | |
slice1->setSpanAngle(270 * 16); | |
slice1->setBrush(QBrush(Qt::blue)); | |
QGraphicsPieSlice *slice2 = new QGraphicsPieSlice; | |
slice2->setRect(0, 0, 100, 100); | |
slice2->setPieRect(QRectF(0, 0, 100, 100)); | |
slice2->setStartAngle(270 * 16); | |
slice2->setSpanAngle(270 * 16); | |
slice2->setBrush(QBrush(Qt::red)); | |
// 将切片添加到场景中 | |
scene->addPieSlice(slice1); | |
scene->addPieSlice(slice2); | |
// 设置视图并返回 | |
view->setScene(scene); | |
return view; | |
} |
这段代码首先创建了一个新的QGraphicsView,然后创建了一个新的QGraphicsScene。接着,我们创建了两个QGraphicsPieSlice,分别代表饼图的两个部分。然后我们将这两个切片添加到场景中。最后,我们将场景设置为视图的场景,并返回视图。
注意,这个例子中的饼图是静态的,如果你需要动态更新饼图的数据,你需要根据新的数据来更新饼图的各个部分。例如,你可以调用
QGraphicsPieSlice::setValue()来改变一个切片的部分大小。
Tags:pie chart