首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QProcess不发出已完成的信号

QProcess不发出已完成的信号
EN

Stack Overflow用户
提问于 2021-08-31 09:49:29
回答 1查看 558关注 0票数 0

我试着读出在QProcess中执行的命令的输出。我无法在QProcess的已完成信号和已完成的处理程序之间建立连接。我尝试了几种连接到QProcess完成信号的不同方式,但到目前为止还没有成功。我知道进程的执行是因为它在GUI的控制台中打印输出,而流程的完成是因为它从顺序API中传递了waitForFinished方法。

为什么我的代码不按onFinishonFinishNoPams

标题:

代码语言:javascript
复制
class Test : public QObject
{
    Q_OBJECT
public:
    Test(QObject *parent = 0);

    Q_INVOKABLE void read();
public slots:
    void onFinish(int exitCode , QProcess::ExitStatus exitStatus);
    void onFinishNoPams();

private:
    QProcess *m_process;

};

cpp:

代码语言:javascript
复制
Test::Test(QObject *parent)
    : QObject(parent)
{}
void Test::read(){
    m_process=new QProcess(this);

    connect(m_process, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(onFinishNoPams()));

    connect(m_process, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(onFinish(int,QProcess::ExitStatus)));

    connect(m_process, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),
        [=](int exitCode, QProcess::ExitStatus exitStatus){
    qDebug() << "not reached";
    });

    connect(m_process, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished), this,&Test::onFinish);

    QString program = "lsusb";
    QStringList arguments;
    m_process->execute(program,arguments);
    m_process->waitForFinished();
    qDebug() << "reached";
    return;
}

void Test::onFinish(int exitCode , QProcess::ExitStatus exitStatus){
    qDebug() << "not reached";
}

void Test::onFinishNoPams(){
    qDebug() << "not reached";
    QByteArray out=m_process->readAllStandardOutput();
}

qml:

代码语言:javascript
复制
import test 1.0

Window {    
    Test{
        id:test
        Component.onCompleted: test.read()
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-31 10:54:11

QProcess::execute()是一个静态方法,它启动外部进程并以阻塞方式等待其完成。这与您的m_process变量无关。您想要使用的是QProcess::start()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68996511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档