EvalReportWidget.cpp 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. #include "EvalReportWidget.h"
  2. #include "view/PlotView.h"
  3. #include "CustomPieChart.h"
  4. #include <QLabel>
  5. #include <QBoxLayout>
  6. #include <QGridLayout>
  7. EvalReportWidget::EvalReportWidget(QWidget *parent) : QWidget(parent)
  8. {
  9. m_view = new QWidget;
  10. m_layout = new QVBoxLayout(m_view);
  11. QLabel *title = new QLabel(this);
  12. title->setText("分析结果");
  13. QFont ft("Microsoft YaHei", 12);
  14. title->setFont(ft);
  15. m_layout->addWidget(title);
  16. m_layout->addSpacing(15);
  17. m_gridLayout = new QGridLayout();
  18. m_layout->addLayout(m_gridLayout);
  19. addContents();
  20. QScrollArea *scroll = new QScrollArea;
  21. scroll->setAlignment(Qt::AlignLeft);
  22. scroll->setWidget(m_view);
  23. QVBoxLayout *layout = new QVBoxLayout(this);
  24. layout->setMargin(0);
  25. layout->addWidget(scroll);
  26. }
  27. void EvalReportWidget::addContents()
  28. {
  29. QVector<PlotView::Data> v;
  30. QList<int> values = { 26, 96, 28, 45, 67, 89 };
  31. QStringList names;
  32. QList<QColor> colors;
  33. for (int i = 0; i < values.count(); i++) {
  34. PlotView::Data d;
  35. d.name = QString("%1").arg(i);
  36. d.value = values[i] / 100.0;
  37. v.append(d);
  38. names.append(d.name);
  39. colors.append(QColor::fromRgbF(i * 1.0 / values.count(), 0.5, (values.count() - i) * 1.0 / values.count(), 1));
  40. }
  41. QSize s = QSize(500, 500);
  42. QTableView *t = new QTableView();
  43. t->setAlternatingRowColors(true);
  44. t->horizontalHeader()->setStyleSheet("QHeaderView::section{background:rgb(244,244,244);color: gray;}");
  45. t->verticalHeader()->setStyleSheet("QHeaderView::section{background:rgb(244,244,244);color: gray;}");
  46. t->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
  47. t->verticalHeader()->setDefaultAlignment(Qt::AlignCenter);
  48. t->setSelectionMode(QAbstractItemView::SingleSelection);
  49. QStandardItemModel *model = new QStandardItemModel(t);
  50. t->setModel(model);
  51. m_gridLayout->addWidget(t, 0, 0);
  52. QStandardItem *item1 = new QStandardItem();
  53. item1->setText("0.9602558624");
  54. item1->setData(Qt::AlignCenter, Qt::TextAlignmentRole);
  55. item1->setEditable(false);
  56. model->setItem(0, 0, item1);
  57. QStandardItem *item2 = new QStandardItem();
  58. item2->setText("0.2689133465");
  59. item2->setData(Qt::AlignCenter, Qt::TextAlignmentRole);
  60. item2->setEditable(false);
  61. model->setItem(0, 1, item2);
  62. QStandardItem *item3 = new QStandardItem();
  63. item3->setText("-0.261667729");
  64. item3->setData(Qt::AlignCenter, Qt::TextAlignmentRole);
  65. item3->setEditable(false);
  66. model->setItem(1, 0, item3);
  67. QStandardItem *item4 = new QStandardItem();
  68. item4->setText("0.9605586895");
  69. item4->setData(Qt::AlignCenter, Qt::TextAlignmentRole);
  70. item4->setEditable(false);
  71. model->setItem(1, 1, item4);
  72. QStandardItem *item5 = new QStandardItem();
  73. item5->setText("0.9602558624");
  74. item5->setData(Qt::AlignCenter, Qt::TextAlignmentRole);
  75. item5->setEditable(false);
  76. model->setItem(2, 0, item5);
  77. QStandardItem *item6 = new QStandardItem();
  78. item6->setText("0.2689133465");
  79. item6->setData(Qt::AlignCenter, Qt::TextAlignmentRole);
  80. item6->setEditable(false);
  81. model->setItem(2, 1, item6);
  82. QStandardItem *item7 = new QStandardItem();
  83. item7->setText("0.9429251078");
  84. item7->setData(Qt::AlignCenter, Qt::TextAlignmentRole);
  85. item7->setEditable(false);
  86. model->setItem(3, 0, item7);
  87. QStandardItem *item8 = new QStandardItem();
  88. item8->setText("-0.281150667");
  89. item8->setData(Qt::AlignCenter, Qt::TextAlignmentRole);
  90. item8->setEditable(false);
  91. model->setItem(3, 1, item8);
  92. PlotView *w1 = new PlotView(PlotView::Line, v, "折线图", this);
  93. w1->setFixedSize(s);
  94. w1->plot();
  95. m_gridLayout->addWidget(w1, 0, 1);
  96. PlotView *w2 = new PlotView(PlotView::HistogramHorizontal, v, "横向柱状图", this);
  97. w2->setFixedSize(s);
  98. w2->plot();
  99. m_gridLayout->addWidget(w2);
  100. PlotView *w3 = new PlotView(PlotView::HistogramVertical, v, "竖向柱状图", this);
  101. w3->setFixedSize(s);
  102. w3->plot();
  103. m_gridLayout->addWidget(w3);
  104. PlotView *w4 = new PlotView(PlotView::Curve, v, "曲线图", this);
  105. w4->setFixedSize(s);
  106. w4->plot();
  107. m_gridLayout->addWidget(w4);
  108. PlotView *w5 = new PlotView(PlotView::Area, v, "面积图", this);
  109. w5->setFixedSize(s);
  110. w5->plot();
  111. m_gridLayout->addWidget(w5);
  112. CustomPieChart *w6 = new CustomPieChart("title", names, values, colors, this);
  113. w6->setFixedSize(s);
  114. m_gridLayout->addWidget(w6);
  115. }