Gi et QProcess-barn dets proxy-miljø
Angi miljøet som overføres til ett Qt-barn, og ta vare på de arvede verdiene det fortsatt trenger.
For en nedlaster som startes gjennom QProcess, bygg barnets miljø før oppstart:
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/"});Denne Qt-delen forutsetter et eksisterende foreldreobjekt, en hendelsesløkke og curl som er tilgjengelig for barnet. Hold QProcess i live mens den kjører, og håndter signalene for fullføring og feil i applikasjonen. For denne kontrollen av et offentlig nettsted uten konfigurerte proxy-påloggingsdetaljer tilbyr listen over HTTP-proxyer egnede HTTP-endepunkter for barnets proxyverdi.
Oppstart med systemEnvironment bevarer arvede verdier som PATH. Å bygge et ellers tomt miljø og legge til én proxyvariabel ville utelatt de andre oppføringene.
Navnet på variabelen er nøkkelen. export er en skallkommando, ikke en del av denne nøkkelen og ikke en kjørbar fil som QProcess må starte først. Å overføre miljøet direkte unngår også å bygge en skallkommando rundt URL-en.
setProcessEnvironment gjelder for prosessen som startes etterpå. Den endrer ikke miljøet til et barn som allerede kjører, eller til skallet som startet Qt-applikasjonen.
Den valgte nedlasteren må forstå variabelen. Dette eksempelet bruker små bokstaver i https_proxy for curls HTTPS-forespørsel og bevarer arvede omkjøringsinndata. Et annet barneprogram kan ha et annet proxygrensesnitt.