Qt|Linux工作笔记-第二种方式读取Linux中top命令(直接读取,非重定向)
生活随笔
收集整理的這篇文章主要介紹了
Qt|Linux工作笔记-第二种方式读取Linux中top命令(直接读取,非重定向)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第一種方式的鏈接如下:
https://mp.csdn.net/postedit/84067805
第一種方式是重定向到文件,然后讀取,
?
第二種方式不重定向到文件,直接讀取!
利用QProcess的特點
運行截圖如下:
源碼如下:
widget.h
#ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE class QProcess; QT_END_NAMESPACEnamespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();protected:void callTopShell();void initListWidget();protected slots:void readProcess();void processFinished();private:Ui::Widget *ui;QProcess *m_topProcess; };#endif // WIDGET_Hwidget.cpp
#include "widget.h" #include "ui_widget.h"#include <QProcess> #include <QEventLoop> #include <QTimer> #include <QDebug>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);m_topProcess = new QProcess;callTopShell();connect(m_topProcess, SIGNAL(readyRead()), this, SLOT(readProcess()));connect(m_topProcess, SIGNAL(finished(int,QProcess::ExitStatus)),this, SLOT(processFinished()));initListWidget(); }Widget::~Widget() {delete ui; }void Widget::callTopShell() {QString cmdTop = "top -b -n 1";m_topProcess->start(cmdTop); }void Widget::processFinished(){qDebug()<< "process Finished";QEventLoop loop;QTimer::singleShot(0.2 * 1000, &loop, SLOT(quit()));loop.exec();initListWidget();callTopShell(); }void Widget::initListWidget() {ui->textEdit->clear(); }void Widget::readProcess() {qDebug()<< "readProcess called!";//qDebug()<< m_topProcess->readAll();ui->textEdit->insertPlainText(m_topProcess->readAll()); }main.cpp
#include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }?
總結
以上是生活随笔為你收集整理的Qt|Linux工作笔记-第二种方式读取Linux中top命令(直接读取,非重定向)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QSettings生成以及解析配置文件
- 下一篇: C++工作笔记-调试release版的d