ProjectView.cpp 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #include "ProjectView.h"
  2. #include "ProjectListWidget.h"
  3. #include "RenameWidget.h"
  4. #include "ConfigExpertWidget.h"
  5. #include "common/ProjectManager.h"
  6. #include <dbService/ClassSet.h>
  7. #include <Widgets/Button.h>
  8. #include <Widgets/LineEdit.h>
  9. #include <Widgets/TreeView.h>
  10. #include <QBoxLayout>
  11. #include <QLabel>
  12. #include <QDebug>
  13. ProjectView::ProjectView(ProjectInfo *proj, QWidget *parent) : QWidget(parent), m_proj(proj) { }
  14. void ProjectView::showEvent(QShowEvent *event)
  15. {
  16. if (m_initilized == false) {
  17. initWidgets();
  18. initLayout();
  19. connectSigalsAndSlots();
  20. m_initilized = true;
  21. }
  22. QWidget::showEvent(event);
  23. }
  24. void ProjectView::hideEvent(QHideEvent *event)
  25. {
  26. QWidget::hideEvent(event);
  27. }
  28. ProjectInfo *ProjectView::proj() const
  29. {
  30. return m_proj;
  31. }
  32. void ProjectView::initWidgets()
  33. {
  34. m_title = new QLabel(this);
  35. m_title->setText(m_proj->projectName);
  36. QFont ft("Microsoft YaHei", 14);
  37. m_title->setFont(ft);
  38. m_close = new PushButton("关闭", this);
  39. m_tree = new TreeWidget(this);
  40. QList<ProjectManager::EvalType> types = ProjectManager::evalTypeList(*m_proj);
  41. for (int i = 0; i < types.count(); i++) {
  42. QString projName = ProjectManager::nameOfEvalType(types[i]);
  43. QTreeWidgetItem *item = new QTreeWidgetItem({ projName });
  44. item->addChildren({ new QTreeWidgetItem({ "指标体系设计" }), new QTreeWidgetItem({ "评估方案规划" }),
  45. new QTreeWidgetItem({ "评估数据采集" }), new QTreeWidgetItem({ "评估数据处理" }) });
  46. m_tree->addTopLevelItem(item);
  47. }
  48. m_tree->expandAll();
  49. m_tree->setHeaderHidden(true);
  50. m_tree->setFixedWidth(300);
  51. m_contentSeperator = new QWidget(this);
  52. m_contentSeperator->setFixedWidth(1);
  53. QPalette pal(m_contentSeperator->palette());
  54. //设置背景黑色
  55. pal.setColor(QPalette::Background, Qt::black);
  56. m_contentSeperator->setAutoFillBackground(true);
  57. m_contentSeperator->setPalette(pal);
  58. }
  59. void ProjectView::initLayout()
  60. {
  61. m_layout = new QVBoxLayout(this);
  62. m_headerLayout = new QHBoxLayout();
  63. m_layout->addLayout(m_headerLayout);
  64. m_contentLayout = new QHBoxLayout();
  65. m_layout->addLayout(m_contentLayout);
  66. // m_layout->addStretch();
  67. m_headerLayout->addWidget(m_title);
  68. m_headerLayout->addStretch();
  69. m_headerLayout->addWidget(m_close);
  70. m_headerLayout->addSpacing(10);
  71. m_contentLayout->addWidget(m_tree);
  72. m_contentLayout->addWidget(m_contentSeperator);
  73. m_contentLayout->addStretch();
  74. }
  75. void ProjectView::connectSigalsAndSlots()
  76. {
  77. connect(m_close, &PushButton::clicked, this, &ProjectView::sigClose);
  78. }