Mpe mtoto wa QProcess mazingira yake ya proksi
Weka mazingira yanayopitishwa kwa mtoto mmoja wa Qt huku ukihifadhi thamani za urithi anazohitaji bado.
Kwa kipakuliwa kinachoanzishwa kupitia QProcess, jenga mazingira ya mtoto kabla ya kukianzisha:
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/"});Kipande hiki cha Qt kinadhani kuna kitu kizazi kilichopo, mzunguko wa matukio na curl inayopatikana kwa mtoto. Weka QProcess hai wakati inaendesha, na shughulikia ishara zake za kukamilika na hitilafu katika programu. Kwa ukaguzi huu wa tovuti ya umma bila vitambulisho vya proksi vilivyowekwa, orodha ya proksi za HTTP inatoa vituo vya mwisho vya HTTP vinavyofaa kwa thamani ya proksi ya mtoto.
Kuanza na systemEnvironment huhifadhi thamani za urithi kama PATH. Kujenga mazingira tupu na kuongeza kigeu kimoja cha proksi kungeacha maingizo hayo mengine.
Jina la kigeu ndilo ufunguo. export ni amri ya shell, si sehemu ya ufunguo huo na si faili inayotekelezeka ambayo QProcess inapaswa kuianzisha kwanza. Kupitisha mazingira moja kwa moja pia huepusha kujenga amri ya shell kuzunguka URL.
setProcessEnvironment inatumika kwa mchakato unaoanzishwa baadaye. Haibadilishi mazingira ya mtoto anayeendesha tayari au ya shell iliyoanzisha programu ya Qt.
Kipakuliwa kilichochaguliwa lazima kielewe kigeu hiki. Mfano huu unatumia https_proxy kwa herufi ndogo kwa ombi la HTTPS la curl na huhifadhi maingizo ya urithi ya kupita kando. Programu nyingine ya mtoto inaweza kuwa na kiolesura kingine cha proksi.