Ubtun的内存CPU上传下载速率读取-qt
2015-08-13 10:41
686 查看
QStringList speed::getFileInfo(QString fileName)
{
//QString fileName="/proc/meminfo";
QFile file(fileName);
if (!file.open(QFile::ReadOnly | QFile::Text))
{
qDebug()<<"Cound't opend file!";
//return NULL;
}
QTextStream stream(&file);
QApplication::setOverrideCursor(Qt::WaitCursor);
QString fileText;
QStringList list1;
do {
fileText =stream.readLine();
list1+=fileText;
} while (!fileText.isNull());
QApplication::restoreOverrideCursor();
file.close();
return list1;
}
double dowNum=0;
double tranNUm=0;
double lasdowNum=0;
double lastranNUm=0;
QStringList speed::getNWS()
{
dowNum=0;
tranNUm=0;
QString filename ="/proc/net/dev";
QStringList strList = getFileInfo(filename);
for(int i=0;i<strList.length();i++)
{
if(strList.at(i).trimmed().mid(0,3)=="eth"||strList.at(i).trimmed().mid(0,3)=="wla")
{
dowNum+=strList.at(i).split(" ",QString::SkipEmptyParts).at(1).toDouble();
tranNUm+=strList.at(i).split(" ",QString::SkipEmptyParts).at(9).toDouble();
}
}
int dowSpeed=(dowNum-lasdowNum)/1024; //KB
int tranSpeed=(tranNUm-lastranNUm)/1024; //KB
lasdowNum=dowNum;
lastranNUm=tranNUm;
QString dowStr;
QString tranStr;
dowStr.setNum(dowSpeed);
tranStr.setNum(tranSpeed);
QStringList speedList;
speedList+=dowStr;
speedList+=tranStr;
return speedList;
}
QStringList speed::getMem()
{
QString filename="/proc/meminfo";
QStringList strList = getFileInfo(filename);
double totalNum=strList.at(0).split(" ",QString::SkipEmptyParts).at(1).toDouble();
double freeNum = strList.at(1).split(" ",QString::SkipEmptyParts).at(1).toDouble();
double bufferNum = strList.at(2).split(" ",QString::SkipEmptyParts).at(1).toDouble();
double cacheNum = strList.at(3).split(" ",QString::SkipEmptyParts).at(1).toDouble();
QString totalStr; //total memory
QString freeStr; //free memory
QString useStr; //percentage
totalStr.setNum(totalNum/1024);
freeStr.setNum((freeNum+bufferNum+cacheNum)/1024);
useStr.setNum(100*(totalNum-freeNum-bufferNum-cacheNum)/totalNum);//**%
QStringList allList;
allList+=totalStr;
allList+=freeStr;
allList+=useStr;
return allList;
}
double totalCPUTime=0;
double lastTotalCPUTime=0;
double idleTime=0;
double lastIdleTime=0;
QString speed::getCPU()
{
QString filename="/proc/stat";
QStringList strList = getFileInfo(filename);
for(int i=1;i<10;i++)
{
totalCPUTime+=strList.at(0).split(" ",QString::SkipEmptyParts).at(i).toDouble();
}
idleTime=strList.at(0).split(" ",QString::SkipEmptyParts).at(4).toDouble();
QString usageStr;
double allCPUTime=totalCPUTime-lastTotalCPUTime;
double unuseCOUTime=idleTime-lastIdleTime;
usageStr.setNum(100*(allCPUTime-unuseCOUTime)/allCPUTime);
lastTotalCPUTime=totalCPUTime;
lastIdleTime=idleTime;
totalCPUTime=0;
return usageStr;
}
相关文章推荐
- QT 将数组打印到text文本中
- qt http 下载文件
- 树链剖分模板+入门题 SPOJ - QTREE
- qt http 上传文件
- Qt设计模式系列——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
- Qt升级后出现的问题
- Qt_QTableView简介
- MQTT客户端编码示例-SimpleMqttClient
- Qt之JSON生成与解析
- Qt中怎样把TXT文件中的数读入数组中
- 【Qt OpenGL教程】25:变形和从文件中加载3D物体
- Qt Link error之找不到构造函数
- Qt中QString转int,float
- QT信号槽的跨线程连接
- pyqt5程序使用py2exe打包后运行时报找不到Qt platform plugin ‘windows’错误
- 抖动法显示灰度图像(Qt 实现)
- 抖动法显示灰度图像(Qt 实现)
- Qt 常用类(18)——QStandardItemModel
- Qt全局宏和变量
- QT小技巧