Vir 'n aflaaier wat deur QProcess begin word, bou die kind se omgewing voordat dit begin:

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/"});

Hierdie Qt-fragment veronderstel 'n bestaande ouer-objek, 'n gebeurtenislus en curl wat vir die kind beskikbaar is. Hou die QProcess lewend terwyl dit loop, en hanteer sy voltooiings- en foutseine in die toepassing. Vir hierdie kontrole van 'n openbare webwerf sonder proxy-aanmeldgegewens wat opgestel is, bied die HTTP-instaanbedienerlys kandidaat-HTTP-eindpunte vir die kind se proxy-waarde.

Om met systemEnvironment te begin, bewaar geërfde waardes soos PATH. Om 'n andersins leë omgewing te bou en een proxy-veranderlike by te voeg, sou daardie ander inskrywings weglaat.

Die veranderlike se naam is die sleutel. export is 'n skulpbevel, nie deel van daardie sleutel nie en nie 'n uitvoerbare lêer wat QProcess eerste moet begin nie. Om die omgewing direk deur te gee, vermy ook om 'n skulpbevel rondom die URL te bou.

setProcessEnvironment geld vir die proses wat daarna begin word. Dit verander nie die omgewing van 'n kind wat reeds loop of van die skulp wat die Qt-toepassing begin het nie.

Die gekose aflaaier moet die veranderlike verstaan. Hierdie voorbeeld gebruik kleinletters https_proxy vir curl se HTTPS-versoek en bewaar geërfde omsy-invoer. 'n Ander kindprogram kan 'n ander proxy-koppelvlak hê.

Verwante artikels