#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
initChart();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::initChart()
{
m_typeChart = new QChart();
m_typeChart->setAnimationOptions(QChart::SeriesAnimations);//动画效果
m_barSet = new QBarSet("eg");
m_barSet->setLabelColor(QColor(0,0,0));
m_barSeries = new QBarSeries(m_typeChart);
m_barSeries->setLabelsVisible(true);
m_barSeries->setLabelsPosition(QAbstractBarSeries::LabelsOutsideEnd);
m_typeChart->addSeries(m_barSeries);
m_typeChart->setTitle("XXXX");
m_typeAxis = new QBarCategoryAxis();
m_typeChart->createDefaultAxes();
m_typeChart->setAcceptTouchEvents(true);
m_typeChart->setAxisX(m_typeAxis, m_barSeries);
m_typeAxisY = new QValueAxis;
m_typeAxisY->setRange(0, 10);
m_typeAxisY->setTickCount(10); //设置多少格
m_typeAxisY->setMinorTickCount(5); //设置每格小刻度线的数目
m_typeChart->setAxisY(m_typeAxisY, m_barSeries);
m_typeChart->legend()->setVisible(true);
m_typeChart->legend()->setAlignment(Qt::AlignBottom);
m_typeChart->legend()->hide();
m_typeView = new QChartView();
m_typeView->setChart(m_typeChart);
m_typeView->setRubberBand(QChartView::RectangleRubberBand);//拉伸效果
m_typeView->setRenderHint(QPainter::Antialiasing);
m_typeView->chart()->setTheme(QChart::ChartThemeBrownSand);
QPalette pal = window()->palette();
pal.setColor(QPalette::Window, QRgb(0x9e8965));
pal.setColor(QPalette::WindowText, QRgb(0x404044));
window()->setPalette(pal);
ui->widget->layout()->addWidget(m_typeView);
sltpushButton();
connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(sltpushButton_2()));
connect(ui->pushButton_3, SIGNAL(clicked()), this, SLOT(sltpushButton_3()));
connect(m_typeAxis, SIGNAL(categoriesChanged()), this, SLOT(sltCategoriesChanged()));
}
void MainWindow::sltpushButton()
{
*m_barSet << 1 << 2 << 3 << 4 << 5 << 6;
m_barSeries->append(m_barSet);
QStringList categories;
categories << "Feb" << "Mar" << "Apr" << "May" << "Jun" << "Jan";
m_typeAxis->append(categories);//
}
void MainWindow::sltpushButton_2()
{
m_typeAxis->clear();
}
void MainWindow::sltpushButton_3()
{
// m_typeAxis->clear();
// m_barSeries->clear();
// m_barSet = new QBarSet("eg");
// m_barSet->setLabelColor(QColor(0,0,0));
// *m_barSet << 3 << 4 << 5 << 6<< 1 << 2;
// m_barSeries->append(m_barSet);
// QStringList categories;
// categories << "A" << "B" << "C"<< "D" << "E" << "F";
// m_typeAxis->append(categories);//barSeries不刷新
}
void MainWindow::sltCategoriesChanged()
{
m_barSeries->clear();
m_barSet = new QBarSet("eg");
m_barSet->setLabelColor(QColor(0,0,0));
*m_barSet<< 2 << 3 << 4 << 5 << 6<<1;
m_barSeries->append(m_barSet);
QStringList categories;
categories << "1" << "2" << "3" << "4"<< "5"<< "6" ;
m_typeAxis->append(categories);
}