首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >adb始终为空的QProcess输出

adb始终为空的QProcess输出
EN

Stack Overflow用户
提问于 2019-10-02 07:53:54
回答 1查看 144关注 0票数 0

我正在启动一个QProcess来获取"adb设备“的返回值。没有错误,总是有一个空响应。我在Windows上的系统环境中有adb,命令在cmd上运行良好。

我做错了什么吗?还是有其他方法可以在QT中运行adb命令?

代码语言:javascript
运行
复制
class ADBInfo: public QObject {
public:
    void start(){
        process = new QProcess( this );
        process->start("adb.exe devices");

        process->waitForFinished(-1);

        qDebug() << "output: " << process->readAll();
        qDebug() << "error: " << process->readAllStandardError();
    }
private:
    QProcess *process;
};
EN

回答 1

Stack Overflow用户

发布于 2021-05-26 15:44:22

下面是正确的方法

代码语言:javascript
运行
复制
   QString mainwindow::cmd(const QString &command)
   {
    qDebug () << "command = "+command;
    QProcess P2;
    P2.start(command);
    P2.waitForFinished(-1);
    P2.setReadChannel(QProcess::StandardOutput);
    QTextStream reade2(&P2);
    QString line2,line,Out;
    while (reade2.readLineInto(&line2))
        Out.append(line2 +'\n');
    P2.setReadChannel(QProcess::StandardError);
    QTextStream reader(&P2);
    while (reader.readLineInto(&line))
        Out.append(line +'\n');
    P2.close();
    return Out.trimmed();
}

当您需要执行命令时

代码语言:javascript
运行
复制
QString Result = cmd("adb devices")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58193661

复制
相关文章

相似问题

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