QProcess farzandiga o‘z proksi muhitini berish
Bitta Qt farzandiga uzatiladigan muhitni, unga hali kerak bo‘lgan meros qiymatlarini saqlab turib sozlang.
QProcess orqali ishga tushiriladigan yuklab oluvchi uchun farzandning muhitini ishga tushirishdan oldin quring:
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/"});Bu Qt bo‘lagi mavjud ota-ona obyekti, hodisalar sikli va farzand uchun ochiq curl bor deb hisoblaydi. QProcess ishlab turganda uni tirik saqlang va uning tugash hamda xato signallarini ilovada boshqaring. Proksi hisob ma’lumotlari sozlanmagan ushbu ommaviy sayt tekshiruvi uchun HTTP proksilar ro‘yxatidan farzandning proksi qiymatiga mos HTTP so‘nggi nuqtalari taklif etiladi.
systemEnvironment bilan boshlash PATH kabi meros qiymatlarini saqlaydi. Aks holda bo‘sh muhit qurib, bitta proksi o‘zgaruvchisini qo‘shish o‘sha boshqa yozuvlarni tashlab ketardi.
O‘zgaruvchi nomi — kalit. export shell buyrug‘i, u bu kalitning qismi emas va QProcess birinchi bo‘lib ishga tushirishi kerak bo‘lgan bajariluvchi fayl ham emas. Muhitni to‘g‘ridan-to‘g‘ri uzatish URL atrofida shell buyrug‘ini qurishdan ham saqlaydi.
setProcessEnvironment keyin ishga tushirilgan jarayonga tegishli. U allaqachon ishlab turgan farzand yoki Qt ilovasini ishga tushirgan shell muhitini o‘zgartirmaydi.
Tanlangan yuklab oluvchi bu o‘zgaruvchini tushunishi kerak. Bu misol curlning HTTPS so‘rovi uchun kichik harfli https_proxy ishlatadi va meros chetlab o‘tish kiritmalarini saqlaydi. Boshqa farzand dasturning boshqa proksi interfeysi bo‘lishi mumkin.