Dajte QProcess djetetu njegovo proxy okruženje
Postavite okruženje koje se predaje jednom Qt djetetu, čuvajući naslijeđene vrijednosti koje su mu još potrebne.
Za program za preuzimanje pokrenut preko QProcess, izgradite okruženje djeteta prije pokretanja:
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/"});Ovaj Qt fragment pretpostavlja postojeći roditeljski objekat, petlju događaja i curl dostupan djetetu. Držite QProcess živim dok radi i obrađujte njegove signale završetka i greške u aplikaciji. Za ovu provjeru javne stranice bez podešenih proxy akreditiva, liste HTTP proxyja nudi kandidatske HTTP krajnje tačke za vrijednost proxyja djeteta.
Početak sa systemEnvironment čuva naslijeđene vrijednosti kao što je PATH. Izgradnja inače praznog okruženja i dodavanje jedne proxy varijable izostavilo bi te druge unose.
Ime varijable je ključ. export je shell naredba, nije dio tog ključa i nije izvršni program koji QProcess mora prvo pokrenuti. Direktno predavanje okruženja takođe izbjegava građenje shell naredbe oko URL-a.
setProcessEnvironment se primjenjuje na proces pokrenut nakon toga. On ne mijenja okruženje djeteta koje već radi niti ljuske koja je pokrenula Qt aplikaciju.
Odabrani program za preuzimanje mora razumjeti varijablu. Ovaj primjer koristi mala slova https_proxy za curl-ov HTTPS zahtjev i čuva naslijeđene ulazne podatke za zaobilaženje. Drugi program djeteta može imati drugo proxy sučelje.