#pragma once #include "Common.h" #include "ui_WindowAppTaskMonitorView.h" #include "vpControls/VCustomPlot.h" class WindowAppTaskMonitorView : public QWidget { Q_OBJECT public: WindowAppTaskMonitorView(const QString& strTitle, QWidget* parent = nullptr); ~WindowAppTaskMonitorView(); // 添加一行新的Task信息 void addNewTask(const TASK* pTask); // 删除一个Task信息 void delTask(const QString& strTaskName); // 更新Task信息 void updateTask(const TASK* pTask); // 更新Task的Mode参数 void updateTaskMode(const TASK* pTask); // 更新Task的状态参数 void updateTaskStatus(const TASK* pTask); // 更新Task的配置参数 void updateTaskOption(const TASK* pTask); // 界面中的监控表格 QTableWidget* m_pMonitorTable; // 界面还原后执行刷新 virtual void changeEvent(QEvent* event) override; private: Ui::WindowAppTaskMonitorView ui; private: // UI元素初始化 void initUI(); // 初始化监控表格 void initMonitorTable(); // 初始化监控表格 void initMonitorCustomPlot(); //获取cpu void getCPU(); //获取内存 void getMemory(); private slots: // 调整大小的消息中改变表格栏的宽度 virtual void resizeEvent(QResizeEvent* event) override; void slotSplitterMoved(int pos, int index); void onCustomPlotTimer(); //读取数据 void slotReadData(); void showEvent(QShowEvent* event); private: VCustomPlot* m_pCustomPlotTask; VCustomPlot* m_pCustomPlotSystem; // 本界面子页面的名称 QString m_strTitle; // 每一个Task对应的表格项 QMap> m_TaskTableWidgetItems; // 表格中的所有Task QVector m_allTaskNames; int m_nCustomPlotKey; int m_nCustomPlotSysTemKey; // 启动一个Timer刷新曲线 QTimer m_eventTimer; private: quint64 totalNew, idleNew, totalOld, idleOld; quint64 cpuPercent; //CPU百分比 quint64 memoryPercent; //内存百分比 quint64 memoryAll; //所有内存 quint64 memoryUse; //已用内存 quint64 memoryFree; //空闲内存 QProcess* process; //linux执行命令 };