240617班级,工业自动化系统,紫鸾PCB
xhm
2024-10-17 253066321ed2afe30fa1506cc84c54ac99b3cd85
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#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);
}