Ar gyfer lawrlwythydd a lansir drwy QProcess, adeiladwch amgylchedd y plentyn cyn ei gychwyn:

auto* download = new QProcess(parent);
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
env.insert("https_proxy", "http://proxy.example:8080");
download->setProcessEnvironment(env);
download->start("curl", {"--head", "https://www.example.com/"});

Mae'r darn Qt hwn yn tybio bod gwrthrych rhiant yn bodoli, bod dolen ddigwyddiadau ann, a bod curl ar gael i'r plentyn. Cadwch y QProcess yn fyw tra bydd yn rhedeg, a thriniwch ei signalau cwblhau a gwall yn y rhaglen. Ar gyfer y gwiriad hwn o safle cyhoeddus heb gymwysterau dirprwy wedi'u gosod, mae'r rhestr dirprwyon HTTP yn cynnig penfeydd HTTP posibl ar gyfer gwerth dirprwy y plentyn.

Mae dechrau gyda systemEnvironment yn cadw gwerthoedd etifeddol fel PATH. Byddai adeiladu amgylchedd gwag fel arall a chyfleu un newidyn dirprwy yn hepgor y cofnodion eraill hynny.

Enw'r newidyn yw'r allwedd. Gorchymyn cragen yw export, nid yw'n rhan o'r allwedd honno ac nid yw'n raglen weithredadwy y mae'n rhaid i QProcess ei lansio'n gyntaf. Mae trosglwyddo'r amgylchedd yn uniongyrchol hefyd yn osgoi adeiladu gorchymyn cragen o amgylch yr URL.

Mae setProcessEnvironment yn berthnasol i'r broses a gychwynnir wedyn. Nid yw'n newid amgylchedd plentyn sy'n rhedeg yn barod nac amgylchedd y gragen a lansiodd y rhaglen Qt.

Rhaid i'r lawrlwythydd a ddewiswyd ddeall y newidyn. Mae'r enghraifft hon yn defnyddio https_proxy mewn llythrennau bach ar gyfer cais HTTPS curl ac yn cadw'r mewnbynnau osgoi etifeddol. Gall rhaglen blentyn arall fod â rhyngwyneb dirprwy arall.

Erthyglau cysylltiedig