WindowAppTaskMonitorView.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. #pragma once
  2. #include "Common.h"
  3. #include "ui_WindowAppTaskMonitorView.h"
  4. #include "vpControls/VCustomPlot.h"
  5. class WindowAppTaskMonitorView : public QWidget
  6. {
  7. Q_OBJECT
  8. public:
  9. WindowAppTaskMonitorView(const QString& strTitle, QWidget* parent = nullptr);
  10. ~WindowAppTaskMonitorView();
  11. // 添加一行新的Task信息
  12. void addNewTask(const TASK* pTask);
  13. // 删除一个Task信息
  14. void delTask(const QString& strTaskName);
  15. // 更新Task信息
  16. void updateTask(const TASK* pTask);
  17. // 更新Task的Mode参数
  18. void updateTaskMode(const TASK* pTask);
  19. // 更新Task的状态参数
  20. void updateTaskStatus(const TASK* pTask);
  21. // 更新Task的配置参数
  22. void updateTaskOption(const TASK* pTask);
  23. // 界面中的监控表格
  24. QTableWidget* m_pMonitorTable;
  25. // 界面还原后执行刷新
  26. virtual void changeEvent(QEvent* event) override;
  27. private:
  28. Ui::WindowAppTaskMonitorView ui;
  29. private:
  30. // UI元素初始化
  31. void initUI();
  32. // 初始化监控表格
  33. void initMonitorTable();
  34. // 初始化监控表格
  35. void initMonitorCustomPlot();
  36. //获取cpu
  37. void getCPU();
  38. //获取内存
  39. void getMemory();
  40. private slots:
  41. // 调整大小的消息中改变表格栏的宽度
  42. virtual void resizeEvent(QResizeEvent* event) override;
  43. void slotSplitterMoved(int pos, int index);
  44. void onCustomPlotTimer();
  45. //读取数据
  46. void slotReadData();
  47. void showEvent(QShowEvent* event);
  48. private:
  49. VCustomPlot* m_pCustomPlotTask;
  50. VCustomPlot* m_pCustomPlotSystem;
  51. // 本界面子页面的名称
  52. QString m_strTitle;
  53. // 每一个Task对应的表格项
  54. QMap<QString, QVector<QTableWidgetItem*>> m_TaskTableWidgetItems;
  55. // 表格中的所有Task
  56. QVector<QString> m_allTaskNames;
  57. int m_nCustomPlotKey;
  58. int m_nCustomPlotSysTemKey;
  59. // 启动一个Timer刷新曲线
  60. QTimer m_eventTimer;
  61. private:
  62. quint64 totalNew, idleNew, totalOld, idleOld;
  63. quint64 cpuPercent; //CPU百分比
  64. quint64 memoryPercent; //内存百分比
  65. quint64 memoryAll; //所有内存
  66. quint64 memoryUse; //已用内存
  67. quint64 memoryFree; //空闲内存
  68. QProcess* process; //linux执行命令
  69. };