#include "mainwindow.h"
|
#include "ui_mainwindow.h"
|
#include <QtCharts/QChartView>
|
#include <QtCharts/QBarSeries>
|
#include <QtCharts/QBarSet>
|
#include <QtCharts/QBarCategoryAxis>
|
#include <QtCharts/QValueAxis>
|
#include <QtCharts/QLineSeries>
|
#include <QtCharts/QDateTimeAxis>
|
#include <QDateTime>
|
#include <QStackedWidget>
|
|
MainWindow::MainWindow(QWidget *parent) :
|
QMainWindow(parent),
|
ui(new Ui::MainWindow)
|
{
|
ui->setupUi(this);
|
// 获取在 Qt Designer 中命名为 myWidget 的 QWidget
|
myWidget = findChild<QWidget*>("myWidget");
|
|
setupChartsInWidget();
|
}
|
|
MainWindow::~MainWindow()
|
{
|
delete ui;
|
}
|
|
void MainWindow::on_pushButton_clicked()
|
{
|
ui->stackedWidget->setCurrentIndex(0);
|
}
|
|
void MainWindow::on_pushButton_2_clicked()
|
{
|
ui->stackedWidget->setCurrentIndex(1);
|
}
|
|
void MainWindow::on_pushButton_3_clicked()
|
{
|
ui->stackedWidget->setCurrentIndex(2);
|
}
|
|
void MainWindow::on_pushButton_4_clicked()
|
{
|
ui->stackedWidget->setCurrentIndex(3);
|
}
|
|
void MainWindow::setupChartsInWidget()
|
{
|
// 创建图表视图
|
QChartView *chartView = new QChartView();
|
QChart *chart = new QChart();
|
|
// 各车间生产进度对比(柱状图)
|
QBarSeries *series1 = new QBarSeries();
|
QBarSet *set11 = new QBarSet("车间1");
|
QBarSet *set12 = new QBarSet("车间2");
|
QBarSet *set13 = new QBarSet("车间3");
|
*set11 << 60 << 70 << 80;
|
*set12 << 50 << 65 << 75;
|
*set13 << 40 << 55 << 65;
|
series1->append(set11);
|
series1->append(set12);
|
series1->append(set13);
|
chart->addSeries(series1);
|
chart->setTitle("各车间生产进度对比");
|
QBarCategoryAxis *axisX1 = new QBarCategoryAxis();
|
axisX1->append("阶段1");
|
axisX1->append("阶段2");
|
axisX1->append("阶段3");
|
QValueAxis *axisY1 = new QValueAxis();
|
axisY1->setRange(0, 100);
|
chart->addAxis(axisX1, Qt::AlignBottom);
|
chart->addAxis(axisY1, Qt::AlignLeft);
|
series1->attachAxis(axisX1);
|
series1->attachAxis(axisY1);
|
|
// 产品瑕疵率趋势图(折线图)
|
QLineSeries *series2 = new QLineSeries();
|
series2->append(0, 5);
|
series2->append(1, 3);
|
series2->append(2, 4);
|
series2->append(3, 6);
|
chart->addSeries(series2);
|
chart->setTitle("产品瑕疵率趋势图");
|
QDateTimeAxis *axisX2 = new QDateTimeAxis();
|
axisX2->setFormat("dd.MM.yyyy");
|
axisX2->setRange(QDateTime::currentDateTime().addDays(-3), QDateTime::currentDateTime());
|
QValueAxis *axisY2 = new QValueAxis();
|
axisY2->setRange(0, 10);
|
chart->addAxis(axisX2, Qt::AlignBottom);
|
chart->addAxis(axisY2, Qt::AlignLeft);
|
series2->attachAxis(axisX2);
|
series2->attachAxis(axisY2);
|
|
chartView->setChart(chart);
|
|
// 将图表视图添加到在 Qt Designer 中拖放的 QWidget 中
|
QVBoxLayout *layout = new QVBoxLayout(myWidget);
|
layout->addWidget(chartView);
|
}
|