Дајте му на дете на 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 и ги зачувува наследените влезни податоци за заобиколување. Друга детска програма може да има друго прокси интерфејс.