Darlle a un fillo de QProcess o seu contorno de proxy
Defina o contorno que se pasa a un fillo de Qt conservando os valores herdados que aínda necesita.
Para un descargador lanzado mediante QProcess, constrúa o contorno do fillo antes de inicialo:
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/"});Este fragmento de Qt presupón un obxecto pai existente, un bucle de eventos e curl dispoñible para o fillo. Manteña vivo o QProcess mentres se executa e xestione os seus sinais de finalización e de erro na aplicación. Para esta comprobación dun sitio público sen credenciais de proxy configuradas, a lista de proxys HTTP ofrece puntos de conexión HTTP candidatos para o valor de proxy do fillo.
Comezar con systemEnvironment conserva valores herdados como PATH. Construír un contorno baleiro e engadir unha soa variable de proxy omitiría esas outras entradas.
O nome da variable é a clave. export é unha orde de shell, non forma parte desa clave nin é un executable que QProcess deba lanzar primeiro. Pasar o contorno directamente tamén evita construír unha orde de shell arredor do URL.
setProcessEnvironment aplícase ao proceso que se inicia despois. Non cambia o contorno dun fillo que xa se está executando nin o do shell que lanzou a aplicación Qt.
O descargador elixido debe entender a variable. Este exemplo usa https_proxy en minúsculas para a solicitude HTTPS de curl e conserva as entradas de omisión herdadas. Outro programa fillo pode ter outra interface de proxy.