ໃຫ້ລູກ 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 ໃຫ້ມີຊີວິດລະຫວ່າງທີ່ມັນເຮັດວຽກ ແລະ ຈັດການສັນຍານສຳເລັດ ແລະ ຂໍ້ຜິດພາດໃນແອັບພລິເຄຊັນ. ສຳລັບການກວດສອບເວັບໄຊສາທາລະນະນີ້ ໂດຍບໍ່ມີຂໍ້ມູນຢືນຢັນພຣັອກຊີ, ລາຍການພຣັອກຊີ HTTP ສະເໜີຈຸດປາຍທາງ HTTP ທີ່ເປັນຕົວເລືອກສຳລັບຄ່າພຣັອກຊີຂອງລູກ.
ການເລີ່ມຈາກ systemEnvironment ຮັກສາຄ່າທີ່ສືບທອດມາເຊັ່ນ PATH. ການສ້າງສະພາບແວດລ້ອມຫວ່າງເປົ່າແລ້ວເພີ່ມຕົວແປພຣັອກຊີໜຶ່ງ ຈະປະລະລາຍການອື່ນເຫຼົ່ານັ້ນ.
ຊື່ຂອງຕົວແປແມ່ນກຸນແຈ. export ເປັນຄຳສັ່ງ shell, ບໍ່ແມ່ນສ່ວນໜຶ່ງຂອງກຸນແຈນັ້ນ ແລະ ບໍ່ແມ່ນໄຟລ໌ທີ່ປະຕິບັດໄດ້ທີ່ QProcess ຕ້ອງເລີ່ມກ່ອນ. ການສົ່ງສະພາບແວດລ້ອມໂດຍກົງຍັງຫຼີກລ້ຽງການສ້າງຄຳສັ່ງ shell ອ້ອມ URL.
setProcessEnvironment ໃຊ້ກັບໂປຣເຊສທີ່ເລີ່ມຫຼັງຈາກນັ້ນ. ມັນບໍ່ປ່ຽນສະພາບແວດລ້ອມຂອງລູກທີ່ກຳລັງເຮັດວຽກຢູ່ແລ້ວ ຫຼື ຂອງ shell ທີ່ເລີ່ມແອັບພລິເຄຊັນ Qt.
ໂປຣແກຣມດາວໂຫຼດທີ່ເລືອກຕ້ອງເຂົ້າໃຈຕົວແປນີ້. ຕົວຢ່າງນີ້ໃຊ້ https_proxy ຕົວພິມນ້ອຍສຳລັບ ຄຳຮ້ອງ HTTPS ຂອງ curl ແລະ ຮັກສາຂໍ້ມູນຂາເຂົ້າການຂ້າມທີ່ສືບທອດມາ. ໂປຣແກຣມລູກອື່ນອາດມີອິນເຕີເຟສພຣັອກຊີອື່ນ.