首页 > 其他分享 >QProcess提示Unknown error

QProcess提示Unknown error

时间:2023-06-07 13:11:50浏览次数:38  
标签:process Unknown QProcess error test tesseract

编译环境qt(5.14.2)

问题:在使用QProcess进行进程交互的出现UnKnown error

错误代码:

    // 创建一个 tesseract 进程对象
    QProcess* process = new QProcess(this);
    process->setProcessChannelMode(QProcess::SeparateChannels);
    // 指定 tesseract 可执行文件
    process->setProgram("F:\\qt_test_lib\\test_tesseract_mingw32\\tess_ocr\\tesseract.exe");
    qDebug() << "指定tesseract:" << process->errorString();
    // 指定命令行参数
    process->setArguments(args);
    qDebug() << "指定命令行参数:" << process->errorString();
    process->setWorkingDirectory("F:\\qt_test_lib\\test_tesseract_mingw32\\tess_ocr");
     qDebug() << "setWorkingDirectory:" << process->errorString();
    process->setProcessChannelMode(QProcess::MergedChannels);
      qDebug() << "setProcessChannelMode:" << process->errorString();
    // 启动进程
    process->start();
    qDebug() << "打开前Error:" << process->errorString();
    // 等待进程结束,并获取输出结果
    if (process->waitForFinished()) {
        // 打开输出文件,读取识别结果
        QFile outputFile(outputFilePath);
        if (outputFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
            QString output = QString::fromUtf8(outputFile.readAll());
            // 根据需求处理识别结果
            qDebug() << "识别结果:" << output;
            outputFile.close();
        } else {
            qDebug() << "打开输出文件失败!";
        }
    } else {
        qDebug() << "进程执行失败!";
    }

输出:

指定tesseract: "Unknown error"
指定命令行参数: "Unknown error"
setWorkingDirectory: "Unknown error"
setProcessChannelMode: "Unknown error"
打开前Error: "Unknown error"

此时将路径等复制到命令行中是可以正常执行的。

使用下面写法QProcess不在报错:

    // 获取识别图片的路径
    QString imageFilePath = "C:\\Users\\admin\\Desktop\\test_jpg\\test.png";
    // 获取输出文件的路径
    QString outputFilePath = "F:\\qt_test_lib\\test_tesseract_mingw32\\output_text.txt.txt";
    // 设置命令行参数
    QStringList args;
    args << imageFilePath << outputFilePath << "-l" << "chi_sim";

    QString program("F:\\qt_test_lib\\test_tesseract_mingw32\\tess_ocr\\tesseract.exe");
     QProcess *tesseract=new QProcess;
     tesseract->start(program,args);
     if(tesseract->waitForFinished()){
         qDebug() << "成功";
     }

执行完毕后可在指定文本内得到数据。

 

标签:process,Unknown,QProcess,error,test,tesseract
From: https://www.cnblogs.com/WU20/p/17463016.html

相关文章

  • java.lang.OutOfMemoryError:GC overhead limit exceeded异常
    java.lang.OutOfMemoryError异常解决方法 原因:常见的有以下几种:1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据;2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;3.代码中存在死循环或循环产生过多重复的对象实体;4.使用的第三方软件中的BUG;5.启动参数内存......
  • OpenOCD : Error: Error connecting DP: cannot read IDR
    没有连接单片机或是连接单片机没有开机。Warn:Failedtoopendevice:LIBUSB_ERROR_NOT_SUPPORTED:这个警告表示OpenOCD无法打开设备,因为设备不受支持。这通常是由于使用的调试适配器与OpenOCD或计算机的驱动程序不兼容所致。您可以尝试以下方法解决该问题:确保您使用的调试......
  • docker: Error response from daemon: could not select device driver "" with capab
    docker19之后的版本1.nanonvidia.shsudocurl-s-Lhttps://nvidia.github.io/nvidia-container-runtime/gpgkey|\ sudoapt-keyadd-distribution=$(./etc/os-release;echo$ID$VERSION_ID)sudocurl-s-Lhttps://nvidia.github.io/nvidia-container-runtime/$dist......
  • ERROR 1418 (HY000) at line 1323: This function has none of DETERMINISTIC, NO SQL
    ERROR1418(HY000)atline1323:ThisfunctionhasnoneofDETERMINISTIC,NOSQL,orREADSSQLDATAinitsdeclarationandbinaryloggingisenabled(you*might*wanttousethelesssafelog_bin_trust_function_creatorsvariable) 开启了bin-log,我们就必须指定......
  • DjangoUeditor ImportError: No module named ‘widgets’的解决办法
    http://ojdbc.com/djangoueditor-importerror-no-module-named-widgets/最近在学习Django框架,按照网上教程集成DjangoUeditor时,出现错误,错误提示为:fromwidgetsimportUEditorWidget,AdminUEditorWidgetImportError:Nomodulenamed‘widgets’经查发现,DjangoUeditor是基于Pyt......
  • Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't ex
    mysql安装报错如下:Fatalerror:Can'topenandlockprivilegetables:Table'mysql.host'doesn'texist12121723:10:40mysqld_safemysqldfrompidfile/data/mysql/data/DB8.pidended 解决办法:mysql_install_db--user=mysql 初始化数据库即可   ......
  • python打包后,执行报错:NameError: name ‘exit‘ is not defined
    try:file_name=os.path.basename(src)file_size=os.stat(src).st_sizeexceptException:print("源文件不存在:",src)exit()在ide使用中没有问题,但是封装成应用程序时就出现问题: NameError:name'exit'isnotdef......
  • initializationError
    HttpUtilsTest.sdfinitializationError(org.junit.runner.manipulation.Filter)java.lang.Exception:Notestsfoundmatching[{ExactMatcher:fDisplayName=sdf],{ExactMatcher:fDisplayName=sdf(cn.zno.newstar.base.utils.http.HttpUtilsTest)],{LeadingIdentifierMatch......
  • Django修改数据库时出错 django.db.utils.OperationalError: (1091, "Can't DROP 'con
    记录下简单的处理方法:报错信息:django.db.utils.OperationalError:(1091,"Can'tDROP'content';checkthatcolumn/keyexists")可能数据库中的字段结构已经完成了此字段的修改但是在  pythonmanage.pymakemigrations新生成的migrations/0002_auto_20191011_2104.py......
  • 解决cURL error 60: SSL certificate problem: unable to get local issuer certifica
    转载:报错原因:因为没有配置信任的服务器HTTPS验证。默认情况下,cURL被设为不信任任何CAs,因此浏览器无法通过HTTPs访问你服务器。一、解决方式下载证书1、放到这里来2、修改php.ini文件,去掉前面“;”路径带上""3、openssl这个扩展开启4、记得重启,不然不生效......