Lejupielādētājam, kas palaists ar QProcess, izveidojiet bērna vidi pirms tā palaišanas:

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

Šis Qt fragments pieņem, ka pastāv vecāka objekts, notikumu cilpa un bērnam pieejams curl. Turiet QProcess dzīvu, kamēr tas darbojas, un lietotnē apstrādājiet tā pabeigšanas un kļūdas signālus. Šai publiskās vietnes pārbaudei bez konfigurētiem starpniekservera akreditācijas datiem HTTP starpniekserveru saraksts piedāvā kandidāta HTTP galapunktus bērna starpniekservera vērtībai.

Sākšana ar systemEnvironment saglabā mantotās vērtības, piemēram, PATH. Citādi tukšas vides izveide un viena starpniekservera mainīgā pievienošana izlaistu šos citus ierakstus.

Mainīgā nosaukums ir atslēga. export ir čaulas komanda, nav šīs atslēgas daļa un nav izpildāma faila, kas QProcess jāpalaiž vispirms. Vides tieša nodošana arī ļauj izvairīties no čaulas komandas veidošanas ap URL.

setProcessEnvironment attiecas uz procesu, kas tiek palaists pēc tam. Tas nemaina jau darbojoša bērna vai čaulas, kas palaida Qt lietotni, vidi.

Izvēlētajam lejupielādētājam ir jāsaprot mainīgais. Šajā piemērā tiek izmantots mazo burtu https_proxy curl HTTPS pieprasījumam, un tiek saglabāti mantotie apiešanas ievades dati. Citai bērnprogrammai var būt cita starpniekservera saskarne.

Saistītie raksti