您的位置:首页 > 运维架构 > Linux

qt 监听linux下进程的CPU使用率和内存使用率

2013-05-06 10:26 513 查看
qt 监听linux下进程的CPU使用率和内存使用率

主要是总结一下网上查找到的资料,代码如下:有两种形式:形式一,利用命令行,然后获得命令行的数据。
形式二,读取linux下的一个环境配置信息文件,里面映射这很多系统信息,例如cpu使用情况,进程情况等等。

代码;
#include "mainwindow.h"

#include "ui_mainwindow.h"

#include"qprocess.h"

#include"QProcess"

#include"string.h"

#include"qdir.h"

#include"ee.h"

#include <QFile>

#include <QTextStream>

#include <QString>

#include <QLabel>

#include <QDateTime>

#include<QTime>

#include<QTimer>

QTimer *testTimer;

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::MainWindow)

{

ui->setupUi(this);

testTimer = new QTimer(this);

}

MainWindow::~MainWindow()

{

delete ui;

}

void MainWindow::changeEvent(QEvent *e)

{

QMainWindow::changeEvent(e);

switch (e->type()) {

case QEvent::LanguageChange:

ui->retranslateUi(this);

break;

default:

break;

}

}

void MainWindow::on_pushButton_clicked()

{

//ee *e=new ee();

//long z=e->find_pid_by_name("cpu2");

//QStringList arguments;

//arguments << "-aux" << ">"<<"/test/3.txt";

//QProcess *p = new QProcess(this);

//p->execute("ps -aux > /test/3.txt");

//QString s= p->readAllStandardOutput();

//ui->lineEdit->setText(s);

//QProcess *p = new QProcess(this);

//p->start("ps -aux > /test/3.txt);

//myProcess->start("/ps", arguments);

QObject::connect(testTimer, SIGNAL(timeout()), this, SLOT(timer_Update()));

testTimer->start(1000);

}

void MainWindow::timer_Update()

{

QString check;

bool x=false;

system("ps -aux > /test/3.txt");

QFile file("/test/3.txt");

if (file.open(QIODevice::ReadOnly | QIODevice::WriteOnly))//以读写方式打开文件,若写成

{ //QIODevice::WriteRead占内存较多

QTextStream in(&file);

while (!in.atEnd()) //检测是否读完文件

{

QString line = in.readLine();

ui->lineEdit->setText(line);

x=line.contains("cpu2",Qt::CaseInsensitive);

if(x==true)

{

QString kk;

kk=line.at(16);

kk+=line.at(17);

kk+=line.at(18);

kk+=line.at(19);

ui->label->setText(kk);

ui->lineEdit->setText(line);

break;

}

}}

}

void MainWindow::on_pushButton_2_clicked()

{

testTimer->stop();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: