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 isječak pretpostavlja postojeći roditeljski objekt, 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 postavljenih proxy akreditiva, liste HTTP proxyja nudi kandidatske HTTP krajnje točke za vrijednost proxyja djeteta.
Početak sa systemEnvironment čuva naslijeđene vrijednosti poput 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. Izravno predavanje okruženja također izbjegava građenje shell naredbe oko URL-a.
setProcessEnvironment primjenjuje se na proces pokrenut nakon toga. Ne mijenja okruženje djeteta koje već radi ni 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.