Untuk pemuat turun yang dilancarkan melalui QProcess, bina persekitaran anak sebelum memulakannya:

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

Coretan Qt ini menganggap objek induk sedia ada, gelung peristiwa dan curl tersedia untuk anak. Kekalkan QProcess hidup semasa ia berjalan, dan kendalikan isyarat penyiapan serta ralatnya dalam aplikasi. Untuk pemeriksaan laman awam ini tanpa kelayakan proksi dikonfigurasikan, senarai proksi HTTP menawarkan titik akhir HTTP calon untuk nilai proksi anak.

Bermula dengan systemEnvironment mengekalkan nilai warisan seperti PATH. Membina persekitaran kosong dan menambah satu pemboleh ubah proksi akan menggugurkan entri lain itu.

Nama pemboleh ubah ialah kuncinya. export ialah arahan shell, bukan bahagian kunci itu dan bukan fail boleh laku yang QProcess perlu jalankan dahulu. Menghantar persekitaran secara langsung juga mengelakkan pembinaan arahan shell di sekeliling URL.

setProcessEnvironment terpakai kepada proses yang dimulakan selepas itu. Ia tidak mengubah persekitaran anak yang sudah berjalan atau shell yang melancarkan aplikasi Qt.

Pemuat turun yang dipilih mesti memahami pemboleh ubah itu. Contoh ini menggunakan https_proxy huruf kecil untuk permintaan HTTPS curl dan mengekalkan input pintasan warisan. Program anak lain boleh mempunyai antara muka proksi lain.

Artikel berkaitan