มอบสภาพแวดล้อมพร็อกซีให้กับลูกของ 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 เป็นคำสั่งเชลล์ ไม่ใช่ส่วนหนึ่งของกุญแจนั้น และไม่ใช่ไฟล์ปฏิบัติการที่ QProcess ต้องเรียกก่อน การส่งสภาพแวดล้อมโดยตรงยังหลีกเลี่ยงการสร้างคำสั่งเชลล์ล้อมรอบ URL
setProcessEnvironment มีผลกับโพรเซสที่เริ่มหลังจากนั้น ไม่เปลี่ยนสภาพแวดล้อมของลูกที่ทำงานอยู่แล้วหรือของเชลล์ที่เริ่มแอปพลิเคชัน Qt
ตัวดาวน์โหลดที่เลือกต้องเข้าใจตัวแปรนี้ ตัวอย่างนี้ใช้ https_proxy ตัวพิมพ์เล็กสำหรับคำขอ HTTPS ของ curl และคงค่าอินพุตการข้ามที่สืบทอดมา โปรแกรมลูกอื่นอาจมีอินเทอร์เฟซพร็อกซีอื่น