For ein nedlastar som blir starta via QProcess, bygg miljøet til barnet før det blir starta:

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-biten føreset eit eksisterande foreldreobjekt, ei hendingsløkke og curl tilgjengeleg for barnet. Hald QProcess i live medan han køyrer, og handsam ferdig- og feilsignala i programmet. For denne kontrollen av ein offentleg nettstad utan konfigurerte proxy-påloggingsdata tilbyr lista over HTTP-proxyar moglege HTTP-endepunkt for proxyverdien til barnet.

Å starte med systemEnvironment tek vare på arva verdiar som PATH. Å byggje eit elles tomt miljø og leggje til éin proxyvariabel ville utelate dei andre oppføringane.

Variabelnamnet er nakkelen. export er ein skalkommando, ikkje ein del av den nakkelen og ikkje ei køyrbar fil som QProcess må starte først. Å sende miljøet direkte unngår òg å byggje ein skalkommando rundt URL-en.

setProcessEnvironment gjeld prosessen som blir starta etterpå. Det endrar ikkje miljøet til eit barn som alt køyrer, eller til skalet som starta Qt-programmet.

Den valde nedlastaren må forstå variabelen. Dette dømet brukar små bokstavar i https_proxy for HTTPS-førespurnaden til curl og tek vare på arva omgangsinndata. Eit anna barneprogram kan ha eit anna proxygrensesnitt.

Relaterte artiklar