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 бірінші іске қосуға тиіс орындалатын файл да емес. Ортаны тікелей беру URL айналасында shell пәрменін құрудан да құтқарады.
setProcessEnvironment кейін іске қосылатын процеске қолданылады. Ол әлдеқашан жұмыс істеп тұрған еншінің немесе Qt қолданбасын іске қосқан shell-дің ортасын өзгертпейді.
Таңдалған жүктеуші айнымалыны түсінуі керек. Бұл мысал curl-дың HTTPS сұрауы үшін кіші әріпті https_proxy пайдаланады және мұрагерлік айналып өту енгізулерін сақтайды. Басқа енші бағдарламасының басқа прокси интерфейсі болуы мүмкін.