精华内容
下载资源
问答
  • 在UI界面中调用QProcess中的waitForStarted()造成ui不响应  案例:在UI界面中,当按下按钮时,利用QProcess调用外部程序下载hex文件到arduino板子上;  然而,在使用waitForStarted()检测进程是否开始后,在它之后...

    在UI界面中调用QProcess中的waitForStarted()造成ui不响应

            案例:在UI界面中,当按下按钮时,利用QProcess调用外部程序下载hex文件到arduino板子上;

          然而,在使用waitForStarted()检测进程是否开始后,在它之后的语句可以执行,但需要显示到UI界面的信息却显示不了,这是因为waitForStarted()造成了当前UI界面不能响应了,直到waitForFinished()之后,UI界面才能响应。

          这个时候,可以利用信号与槽来解决这个问题:

          connect(p,SIGNAL(started()),this,SLOT(uploadStarted()));

          在uploadStarted()里面实现在UI界面显示信息就可以了。

          既然这样,我又想把waitForFinished()也转换成信号与槽的形式,开始调用了finished()信号,报错,查了资料才知道这个信号改成finished(int exitCode, QProcess::ExitStatus)了,如下:

          connect(p,SIGNAL(finished(int, QProcess::ExitStatus)),this,SLOT(uploadFinished(int, QProcess::ExitStatus)));


    展开全文
  • QProcess time out

    2019-07-18 00:02:14
    QProcess详解QProcessbool QProcess::waitForStarted(int msecs = 30000)time out 错误分析QProcess time out错误解决 QProcess bool QProcess::waitForStarted(int msecs = 30000) time out 错误分析 默认情况下,...

    QProcess

    bool QProcess::waitForStarted(int msecs = 30000)

    time out 错误分析

    • 默认情况下,等待的时间最大为30000ms,若QProcess的运行时间过长,则会返回“QT process options timed out”错误,并会kill掉进程。

    QProcess time out错误解决

    修改默认值为-1,则无time out.

    process->waitForFinished(-1);
    
    展开全文
  • Qt QProcess执行Linux 命令行的方法

    千次阅读 2020-02-08 17:45:35
    1、QProcess 打开一个bash终端,可以执行一般的命令,主要实现步骤如下 m_proces_bash = new QProcess; m_proces_bash->...waitForStarted(); connect(m_proces_bash,SIGNAL(readyReadStandardOutput()),th...

    1、QProcess 打开一个bash终端,可以执行一般的命令,主要实现步骤如下

    m_proces_bash = new QProcess;
    m_proces_bash->start("bash");
    m_proces_bash->waitForStarted();
    connect(m_proces_bash,SIGNAL(readyReadStandardOutput()),this,SLOT(readBashStandardOutputInfo()));
    connect(m_proces_bash,SIGNAL(readyReadStandardError()),this,SLOT(readBashStandardErrorInfo()));

    2、向终端发送命令

    void MainWindow::on_pushButton_bashrun_clicked()
    {
        QString strCmd = ui->lineEdit_bashcmd->text();
        ui->textEdit_bashmsg->append("Linux:~$ "+strCmd);
        m_proces_bash->write(ui->lineEdit_bashcmd->text().toLocal8Bit() + '\n');
        ui->lineEdit_bashcmd->clear();
    }

    3、接收终端返回

    void MainWindow::readBashStandardOutputInfo()
    {
        QByteArray cmdout = m_proces_bash->readAllStandardOutput();
        if(!cmdout.isEmpty()){
            ui->textEdit_bashmsg->append(QString::fromLocal8Bit(cmdout));
        }
        QScrollBar* scroll = ui->textEdit_bashmsg->verticalScrollBar();
        scroll->setSliderPosition(scroll->maximum());
    }
    void MainWindow::readBashStandardErrorInfo()
    {
        QByteArray cmdout = m_proces_bash->readAllStandardError();
        if(!cmdout.isEmpty()){
            ui->textEdit_bashmsg->append(QString::fromLocal8Bit(cmdout));
        }
        QScrollBar* scroll = ui->textEdit_bashmsg->verticalScrollBar();
        scroll->setSliderPosition(scroll->maximum());
    }

    4、当命令需要超级权限时,sudo xx 需要修改为sudo -S xx

    例如:(1)ls 执行正常

    (2)sudo ls 执行失败

    (3)执行sudo -S ls 执行成功

     

     

    展开全文
  • Qt之启动外部程序

    2019-06-21 14:15:08
    QStringList arguments; arguments << "/c" <<"start cmd.exe"; QProcess process(nullptr);...process.startDetached("cmd.exe",arguments);...process.waitForStarted(); process.waitForFinished(); pr...
    QStringList arguments;
    arguments << "/c" <<"start cmd.exe";
    
    QProcess process(nullptr);
    process.startDetached("cmd.exe",arguments);
    process.waitForStarted();
    process.waitForFinished();
    process.close();
    QProcess process(this);
    process.start("cmd.exe");
    process.write ("start cmd.exe\n\r");
    process.write ("exit\n\r");
    process.waitForFinished();
    process.close();

    使用cmd来删除本地文件:

    QProcess process(this);
    process.start("cmd.exe");
    process.write ("del E:\\a.txt\n\r");
    process.write ("exit\n\r");
    process.waitForFinished();
    process.close();

    参考:https://www.bbsmax.com/A/rV57LVRqdP/

    展开全文
  • #include "SoftWareUpdate.h" #include <QApplication> #include <QDesktopWidget> // when need updater update void updaterUpdate() { ... // p.waitForStarted(2); //sleep(...
  • 源地址:http://blog.csdn.net/hn307165411/article/details/6858614运行 route、ipconfig 肯定没问题QProcess p(0);...p.waitForStarted();p.waitForFinished();qDebug()<QProcess p(0);p.start("ipconfig");p...
  • 源地址:http://blog.csdn.net/hn307165411/article/details/6858614运行 route、ipconfig 肯定没问题QProcess p(0);...p.waitForStarted();p.waitForFinished();qDebug()<QProcess p(0);p.start("ipconfig");p...
  • QT获取CPU ID

    千次阅读 2018-01-23 21:51:56
    直接贴函数了(包含头文件#include ): QString MainWindow::GetCPUManID() { QString cpu_id = ""; ... p.start("wmic CPU get ProcessorID");... p.waitForStarted(); p.waitForFinished
  • QProcess p(0); p.start("cmd", QStringList()<<"/c"<<"ping www.baidu.com"); p.waitForStarted(); p.waitForFinished(); QString strTemp=QString::fromLocal8Bit(p.readAllStandard...
  • 1.Qt 运行 bat 文件 QProcessQProcess p;p.start("cmd.exe", QStringList() << "/c" <<...if (p.waitForStarted()){p.waitForFinished();qDebug() << p.readAllStandardOutpu...
  • QT 在linux环境执行自动关机的操作 QProcess pro; //通过QProcess类来执行第三方程序 QString cmd = QString("shutdown -h 1");...pro.waitForStarted(); pro.waitForFinished(); close(); //关闭上位机 ...
  • 在Qt中调用CMD命令

    千次阅读 2017-09-21 21:56:19
    代码: [plain] view plain copy QProcess p(0);  p.start("cmd", QString...p.waitForStarted();  p.waitForFinished();  QString strTemp=QString::fromLocal8Bit(p.readAllSta
  • QString callProcess( QString & cmd) { QProcess process; process.start(cmd); process.waitForStarted(); while(false == process.waitForFinished()); return process.readAll(); }
  • Qt修改本机IP地址与获取本机IP地址

    千次阅读 2017-03-30 10:34:21
    修改本机IP: QString set="netsh interface ip set address \"本地连接\" static IP地址 子网掩码 网关; QProcess p;... p.waitForStarted(); p.waitForFinished(); 获取本机IP: QString GetCurrentIp
  • Qt 调用 chm格式的文件

    2019-08-01 14:29:35
    在windows平台下, 有一个系统默认的,打开chm格式文件的exe. —— hh.exe ...process.waitForStarted(); 这样, 就可以打开帮助文件。 定位操作 帮助文档通常会拥有多页, 针对程序中的不...
  • Qt执行cmd命令

    2018-10-17 22:45:08
    运行route命令 QProcess p(0);...p.waitForStarted(); p.waitForFinished(); qDebug()<<QString::fromLocal8Bit(p.readAllStandardError()); 运行ipconfig命令 QProcess p(0); p.start("ipconfig...
  • Run exe, and get result

    2020-12-17 16:12:45
    QProcess p(0); p.start("cmd", QStringList()<... p.waitForStarted(); p.waitForFinished(); QString strTemp=QString::fromLocal8Bit(p.readAllStandardOutput()); qDebug()<<"TT1 "...
  • 调用waitForStarted执行ok调用waitForBytesWritten,返回值为false,QProcess::ProcessError为5,即QProcess::UnknownError。调用waitForFinished,函数超时,且SqlFormatter.exe进程掉死。网上搜索无...
  • 文章为个人创作,如转载请标注。 当我们执行一个超过30s的动作的时候,int msecs = 30000,那么就会直接finish,像遇到解压文件这种...p.waitForStarted(); p.waitForFinished(); //此处其实是有一个缺省参数的,...
  • 由于项目中使用到多种不同的驱动文件,考虑到程序的兼容性,将不同的驱动文件做成单独的执行文件,在主程序中调用驱动执行文件。 打开外部程序的方法: QProcess *process=new ...waitForStarted(); FilePath...
  • 其实我们可以通过命令行的方式,查询系统进程来发现用户正在修改系统时间,这对于不想用户修改时间的程序来说,是一种不错的方法。...p.waitForStarted(); p.write("process where caption=\"rundll32...
  • Qt 打开并读取文件内容的方法

    千次阅读 2017-08-28 08:43:34
    1,进程打开 QProcess p(0) ...p.waitForStarted(); p.waitForFinihed(); QString str = p.readAllStandardOutput(); str = str.mid(2,8);//取第二到第八个字符 2,文件系统打开 char buf[1024] = {
  • Qt 中用QProcess调用cmd命令

    千次阅读 2019-03-31 21:55:06
    项目做到一定阶段,常常须要在原来的project上调用外部程序。 Qt为此提供了QProcess类,QProcess可用于完毕启动外部程序,并与之交互通信。 基本用法: QProcess p(0); p.start("cmd", ... p.waitForStarted(...
  • qt执行cmd命令

    千次阅读 2018-05-29 17:27:00
    运行 route、ipconfig 肯定没问题Copy code QProcess p(0);... p.waitForStarted(); p.waitForFinished(); qDebug()&lt;&lt;QString::fromLocal8Bit(p.readAllStandardError());Copy cod...
  • 2018年3月21日11:14:11 原因 根据文档说明,QProcess启动子进程后必须调用对应的方法等待子进程完成启动并等待子进程有数据可读,才能进行...waitForStarted(-1)) { while(apInstance-&gt;waitForReadyR...
  • QT 嵌入第三方程序方法: QProcess *Process = new QProcess(this); //Process必须为指针,不然对象销毁时第三方exe会被关闭  Process->start(“Everything\\... if (Process->waitForStarted())  {  S
  • lsof命令的用法 QProcess 调用shell命令,并获取标准输出内容: QString pPath = "/tmp/1.txt";  QProcess commandProcess;... commandProcess.start("lsof", QStringList... commandProcess.waitForStarted();

空空如也

空空如也

1 2 3
收藏数 46
精华内容 18
关键字:

waitforstarted