qt运行cmd命令_cmd ping大包命令

qt运行cmd命令_cmd ping大包命令0-问题描述在实现QT调用外部程序cmd.exe的时候传回来的参数需要显示在textbrowser控件上,但是一直等待数据全部接受完毕会才显示,会导致页面卡死的假象,所以下面利用append()进行每次都更新,可以很好的解决这个问题。1-解决方案//mainwindow.cpp文件,主界面实现#include”mainwindow.h”#include”ui_mainwindow.h…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

0-问题描述

在实现QT调用外部程序cmd.exe的时候传回来的参数需要显示在textbrowser控件上,但是一直等待数据全部接受完毕会才显示,会导致页面卡死的假象,所以下面利用append()进行每次都更新,可以很好的解决这个问题。

1-解决方案

//mainwindow.cpp文件,主界面实现
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <qdebug.h>
#include <qprocess.h>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow){ 
   
    ui->setupUi(this);
}
MainWindow::~MainWindow(){ 
   
    delete ui;
}
void MainWindow::on_btnPing_clicked(){ 
   
    qDebug()<<QStringLiteral("开始点击");
    ui->textBrowser->clear();
    ui->textBrowser->setText(QStringLiteral("请等待"));
    ui->textBrowser->update();

    QProcess myProcess(this);
    QString program = "C:/Windows/System32/cmd.exe";
    QStringList arguments;
    arguments <<"/c" <<"ping www.baidu.com";
    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()<<"结束点击";
}
  • 下面是会假死的方式
    QProcess myProcess(this);
    QString program = "C:/Windows/System32/cmd.exe";
    QStringList arguments;
    arguments <<"/c" <<"ping www.baidu.com";
    myProcess.start(program,arguments);
    myProcess.waitForFinished();
    QString qstr = QString::fromLocal8Bit(myProcess.readAllStandardOutput());
    ui->textBrowser->setText(qstr);

这篇文章也可以作为参考:外部程序与QT传参
PS:公众号上线啦,技术干货分享,欢迎关注。


qt运行cmd命令_cmd ping大包命令

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193461.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 零基础学Java(10)面向对象-使用LocalDate类完成日历设计

    零基础学Java(10)面向对象-使用LocalDate类完成日历设计前言在我们完成这个日历设计前,需要了解Java中的预定义类LocalDate的一些用法语法LocalDate.now()//2022-07-01会构造一个新对象,表示构造这个对象时的日期。

    2022年8月7日
  • ZigBee协议栈简介和流程「建议收藏」

    ZigBee协议栈简介和流程「建议收藏」ZigBee协议栈实际上就是ZigBee协议的API接口一般步骤为:1.组网:调用协议栈的组网函数、加入网络函数,实现网络的建立与节点的加入2.发送:发送节点调用协议栈的无线数据发送函数,实现无线数据发送3.接收:接收节点调用协议栈的无线数据接收函数,实现无线数据接收大致流程:main()→osal_init_system()→osalInitTasks()→SampleAp

    2022年5月8日
  • pycharmlinux安装教程_怎么在ubuntu安装pycharm

    pycharmlinux安装教程_怎么在ubuntu安装pycharmLinux下PyCharm的安装下载PyCharmProfessionalforLinux下载地址:https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=linux将下载的安装包解压缩$tar-zxvfpycharm-professional-2018.3.3.tar.gz稍等片刻…

    2022年8月25日
  • 刷屏专用超长复制_跪求超超长刷屏字符剑。。

    该楼层疑似违规已被系统折叠隐藏此楼查看此楼….飘过…..飘过……飘过…….飘过……..飘过……..飘过……..飘过……..飘过…….飘过……飘过…..飘过….飘过…飘过..飘过.飘过.飘过.飘过..飘过…飘过….飘过…..飘过……飘过…….飘过……..飘过……..飘过….

    2022年4月8日
  • html b5纸尺寸,b5纸的大小?「建议收藏」

    html b5纸尺寸,b5纸的大小?「建议收藏」B5纸的大小是18.2cm*25.7cm,也就是说B5纸是182*257毫米32开B5一般有两种尺寸,EXTRA也就是标准的就是20.1cmX27.6cm还有一种是18.2cmX25.7cmA4纸是多少开的?这要从纸张的制作说起,纸张的规格是指纸张制成后,经过修整切边,裁成一定的尺寸。过去是以多少开(例如8开或16开等)来表示纸张的大小。现在通常采用国际标准,规定以A0、A1、A2、B1、B2…

    2022年6月20日
  • jmeter正则表达式提取器的用法和正则「建议收藏」

    jmeter正则表达式提取器的用法和正则「建议收藏」我们再使用jmeter请求接口时,碰到一些业务流程性的接口改怎么办,比如,我一个发布内容的接口需要用到登录接口返回的token加到请求上去才能发布内容,那在jmeter上该是如何实现的咧?这里介绍的是jmeter的正则表达式提取器1,把正则表达式添加到需要提取返回内容的http请求里,添加步骤是,,右键http请求–添加–后置处理器–正则表达式处理器2,在正则表达式提取器配置设置页里,1)要检查的响应字段:相当于是要提取哪个位置的内容数据……

    2022年9月11日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号