QProcessi kaudu käivitatud allalaadija jaoks koostage lapse keskkond enne käivitamist:

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/"});

See Qt-lõik eeldab olemasolevat vanemobjekti, sündmuste tsüklit ja lapsele kättesaadavat curli. Hoidke QProcessi selle töötamise ajal elus ning käsitlege selle lõpetamise ja vea signaale rakenduses. Selle avaliku saidi kontrolli jaoks, kus puhverserveri mandaate pole seadistatud, pakub HTTP-puhverserverite loendist lapse puhverserveri väärtuse jaoks sobivaid HTTP-lõppunkte.

systemEnvironmentiga alustamine säilitab päritud väärtused nagu PATH. Muidu tühja keskkonna loomine ja ühe puhverserveri muutuja lisamine jätaks need teised kirjed välja.

Muutuja nimi on võti. export on shell-käsk, ei ole selle võtme osa ega käivitatav programm, mille QProcess peaks esimesena käivitama. Keskkonna otse edastamine väldib ka shell-käsu loomist URL-i ümber.

setProcessEnvironment kehtib pärast seda käivitatud protsessi kohta. See ei muuda juba töötava lapse ega Qt rakenduse käivitanud shelli keskkonda.

Valitud allalaadija peab muutujast aru saama. See näide kasutab väiketähelist https_proxy, et teha curli HTTPS-päring, ja säilitab päritud möödaviigu sisendid. Teisel lapsprogrammil võib olla teine puhverserveri liides.

Seotud artiklid