Дајте QProcess детету његово прокси окружење
Подесите окружење које се предаје једном Qt детету, чувајући наслеђене вредности које су му још потребне.
За програм за преузимање покренут преко QProcess, изградите окружење детета пре покретања:
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/"});Овај Qt исечак претпоставља постојећи родитељски објекат, петљу догађаја и curl доступан детету. Држите QProcess живим док ради и обрађујте његове сигнале завршетка и грешке у апликацији. За ову проверу јавне странице без подешених proxy акредитива, листе HTTP проксија нуди кандидатске HTTP крајње тачке за вредност proxy-ја детета.
Почетак са systemEnvironment чува наслеђене вредности као што је PATH. Изградња иначе празног окружења и додавање једне proxy променљиве изоставило би те друге уносе.
Име променљиве је кључ. export је shell наредба, није део тог кључа и није извршни програм који QProcess мора прво да покрене. Директно предавање окружења такође избегава грађење shell наредбе око URL-а.
setProcessEnvironment се примењује на процес покренут након тога. Не мења окружење детета које већ ради ни љуске која је покренула Qt апликацију.
Изабрани програм за преузимање мора да разуме променљиву. Овај пример користи мала слова https_proxy за curl-ов HTTPS захтев и чува наслеђене улазне податке за заобилажење. Други програм детета може имати друго proxy сучеље.