QT实现ping命令 admin 2023-05-22 11:30:02 篇首语:本文由小编为大家整理,主要介绍了QT实现ping命令相关的知识,希望对你有一定的参考价值。 #ifndef WIDGET_H#define WIDGET_H#include #include #include #include #include #include #include QT_BEGIN_NAMESPACEnamespace Ui class Widget; QT_END_NAMESPACEclass Widget : public QWidget Q_OBJECTpublic: Widget(QWidget *parent = nullptr); ~Widget();public slots: void Myping();private: Ui::Widget *ui;;#endif // WIDGET_H#include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) ui->setupUi(this); //使用正则表达式限制输入 ui->lineEdit_ip->setValidator(new QRegExpValidator(QRegExp("\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.)3(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b"))); connect(ui->pushButton_ip,&QPushButton::clicked,this,&Widget::Myping);/* bool Widget::Myping() QProcess exc; QTextCodec *codec = QTextCodec::codecForName("utf-8"); // QString cmdstr="ping 192.168.110.179";//ping 192.168.110.179 -n 2 -w 4000 QString cmdstr=ui->lineEdit_ip->text(); exc.start(cmdstr);//执行ping exc.waitForFinished(-1);//等待ping完成 QString outstr=codec->toUnicode(exc.readAll());//获取ping结果 ui->textBrowser->setText(outstr); //返回不等于-1,说明ping结果包含"往返行程的估计时间"字段,则说明ping成功,网络可达;等于-1,表示没有此字段,说明ping不通 if((outstr.indexOf("往返行程的估计时间"))!=-1) qDebug("ping通\n"); else qDebug("ping失败\n"); */void Widget::Myping() qDebug()<<QStringLiteral("开始点击"); ui->textBrowser->clear(); ui->textBrowser->setText(QStringLiteral("请等待")); ui->textBrowser->update(); QProcess myProcess(this); QString program = "C:/Windows/System32/cmd.exe"; QStringList arguments; QString ipaddr; // 正则表达式限制输入 ipaddr = ui->lineEdit_ip->text(); //用户输入的内容 QString message = "ping " + ipaddr; //和ping命令拼接,字符串的拼接直接+链接就可 qDebug()<<message; //将拼接后的结果在应用程序输出的位置打印一下 // 用于占位 //arguments=ui->lineEdit_ip->setInputMask("000.000.000.000; "); //arguments <<"/c" <<"ping www.baidu.com"; arguments <<"/c" <<message; myProcess.start(program,arguments); while (myProcess.waitForFinished(100) == false) QByteArray qByteRead = myProcess.readAllStandardOutput(); if (!qByteRead.isEmpty()) ui->textBrowser->append(QString::fromLocal8Bit(qByteRead)); repaint(); QByteArray qByteRead = myProcess.readAllStandardOutput(); ui->textBrowser->append(QString::fromLocal8Bit(qByteRead)); qDebug()<<QString::fromLocal8Bit(qByteRead); //输出应用程序输出上 qDebug()<<"结束点击";Widget::~Widget() delete ui;以上是关于QT实现ping命令的主要内容,如果未能解决你的问题,请参考以下文章 自监督学习之掩码自动编码器(Masked Autoencoders, MAE)——音频识别方面 JAVA里面的boolean类型怎么转成int型 请各位前辈给予指点 您可能还会对下面的文章感兴趣: 相关文章 浏览器打不开网址提示“ERR_CONNECTION_TIMED_OUT”错误代码的解决方法 如何安装ocx控件 VMware的虚拟机为啥ip地址老是自动变化 vbyone和EDP区别 linux/debian到底怎么重启和关机 苹果平板键盘被弄到上方去了,如何调回正常? 机器学习常用距离度量 如何查看kindle型号