QChart 中加入了2个QPieSeries,如何通过切换不同的QPieSeries QT6.3 C++代码
时间: 2024-09-28 13:13:21 浏览: 31
在Qt6.3中,如果你想要在QChart上切换两个QPieSeries,你可以创建一个QPieSeries的对象并添加到图表里,然后使用`setActiveSeriesIndex()`方法来动态切换显示。下面是一个简单的示例代码:
```cpp
#include <QApplication>
#include <QChart>
#include <QChartView>
#include <QPieSeries>
#include <QPieSlice>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建QChart对象
QChart chart("My Pie Chart");
QChartView chartView(&chart); // 显示图表
// 创建第一个QPieSeries
QPieSeries series1;
series1.setTitle(QStringLiteral("Series 1"));
series1.append(QStringLiteral("Data Point 1"), 50);
series1.append(QStringLiteral("Data Point 2"), 30);
series1.append(QStringLiteral("Data Point 3"), 20);
// 创建第二个QPieSeries
QPieSeries series2;
series2.setTitle(QStringLiteral("Series 2"));
series2.append(QStringLiteral("Data Point A"), 40);
series2.append(QStringLiteral("Data Point B"), 30);
series2.append(QStringLiteral("Data Point C"), 30);
// 将系列添加到图表中
chart.addSeries(series1);
chart.addSeries(series2);
// 初始设置显示series1
chart.setActiveSeries(series1);
// 按钮点击事件处理函数,这里假设有一个名为switchSeriesBtn的按钮
QPushButton* switchSeriesBtn = new QPushButton("Switch Series");
connect(switchSeriesBtn, &QPushButton::clicked, [&]() {
int currentIndex = chart.activeSeriesIndex();
if (currentIndex == 0) { // 当前显示的是series1
chart.setActiveSeries(series2);
} else { // 当前显示的是series2
chart.setActiveSeries(series1);
}
});
chartView.show();
return app.exec();
}
阅读全文