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-ის გარემოს.

არჩეულმა ჩამომტვირთავმა უნდა გაიგოს ცვლადი. ეს მაგალითი იყენებს პატარა ასოიან https_proxy-ს curl-ის HTTPS მოთხოვნისთვის და ინარჩუნებს მემკვიდრეობით მიღებულ გვერდის ავლის შეყვანებს. სხვა შვილ პროგრამას შეიძლება ჰქონდეს სხვა პროქსის ინტერფეისი.

დაკავშირებული სტატიები