gpt4 book ai didi

python - readAll() 或 readAllStandardOutput() 在执行之前返回一个空字符串

转载 作者:行者123 更新时间:2023-11-28 01:14:17 28 4
gpt4 key购买 nike

如标题中所定义,这两个函数都返回一个空字符串。让我描述一下我的场景,我正在执行一个 python 文件,该文件最后正在打印文本,执行后文本会发布在应用程序输出上,但不会复制给定的输出。我的 python 脚本也需要 30 到 40 秒才能执行,但 readAll 函数会在加载脚本后立即执行。

我的函数正在执行 python 脚本:

    QString text = ui->textEdit->toPlainText();
QString path = "D:/DS Project/Treegramming";
QString command("py");
QStringList params = QStringList() << "nlp.py";
params << text;
QProcess *process = new QProcess();
process->startDetached(command, params, path);
process->waitForFinished(30000);
QByteArray ba = "";
process->waitForReadyRead(30000);
ba += process->readAllStandardOutput();
qDebug() << ba ;

再次重复,qDebug() 在执行整个脚本之前给出空输出。

最佳答案

考虑这条线...

process->startDetached(command, params, path);

在这里你实际上是在调用static startDetached member这与您新创建的 QProcess 无关。因此您不会看到任何标准输出/错误。

相反,您应该使用 non-static start member像(未经测试)...

process->setWorkingDirectory(path);
process->start(command, params);

关于python - readAll() 或 readAllStandardOutput() 在执行之前返回一个空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59218985/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com