Bigyan ng Proxy Environment ang Anak ng QProcess
Itakda ang environment na ipinapasa sa isang anak ng Qt habang pinapanatili ang mga minanang halaga na kailangan pa nito.
Para sa isang downloader na inilulunsad sa pamamagitan ng QProcess, buuin ang environment ng anak bago ito simulan:
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/"});Ipinapalagay ng bahaging Qt na ito na may umiiral nang parent object, event loop at curl na magagamit ng anak. Panatilihing buhay ang QProcess habang tumatakbo ito, at pangasiwaan ang mga senyales ng pagtatapos at error nito sa application. Para sa pagsusuring ito ng pampublikong site na walang nakatakdang kredensyal ng proxy, nag-aalok ang listahan ng mga HTTP proxy ng mga kandidatong HTTP endpoint para sa halaga ng proxy ng anak.
Ang pagsisimula sa systemEnvironment ay nagpapanatili ng mga minanang halaga tulad ng PATH. Ang pagbuo ng environment na walang laman at pagdaragdag ng isang proxy variable ay mag-aalis sa iba pang mga entry.
Ang pangalan ng variable ang susi. Ang export ay isang shell command, hindi bahagi ng susing iyon at hindi rin executable na dapat munang ilunsad ng QProcess. Ang direktang pagpasa ng environment ay umiiwas din sa pagbuo ng shell command sa paligid ng URL.
Naaangkop ang setProcessEnvironment sa prosesong sinisimulan pagkatapos. Hindi nito binabago ang environment ng anak na tumatakbo na o ng shell na naglunsad ng Qt application.
Dapat maunawaan ng napiling downloader ang variable. Ginagamit ng halimbawang ito ang https_proxy sa maliit na titik para sa HTTPS request ng curl at pinapanatili ang mga minanang input ng bypass. Maaaring may ibang proxy interface ang ibang programang anak.