1. Что такое QProcess и зачем он используется в Qt?
QProcess — это класс в Qt, который позволяет запускать внешние независимые программы и утилиты (например, интерпретатор Python, системный терминал, компиляторы) прямо из твоего графического приложения, передавать им аргументы и обмениваться с ними данными [от стр. 2].
2. Что означают параметры при вызове функции process.start()?
Метод start() обычно принимает два ключевых параметра [от стр. 2]:
1. Имя программы (program) — строка с названием исполняемого файла или путь к нему (например, "python").
2. Аргументы (arguments) — список строк QStringList, которые передаются программе на вход при старте (в нашем случае это был путь к временному файлу со скриптом).
3. Как проверить, что QProcess успешно запущен, и какой сигнал используется для обработки ошибки запуска?
• Для быстрой проверки успешного старта в синхронном режиме используется метод process.waitForStarted(msecs), который возвращает true, если процесс запустился [от стр. 2].
• Для асинхронного отслеживания ошибок старта (например, если программа не найдена в системе) используется встроенный сигнал errorOccurred(QProcess::ProcessError) [от стр. 3].
4. Как получить вывод программы после её выполнения?
Вывод можно получить с помощью методов чтения буфера процесса [от стр. 3]:
• readAllStandardOutput() — возвращает весь текст, который внешняя программа вывела в стандартную консоль (stdout) [от стр. 3].
• readAllStandardError() — возвращает текст системных ошибок и исключений (stderr) [от стр. 3].
5. Почему важно использовать временные файлы при запуске пользовательского кода?
Интерпретаторы (такие как Python) не умеют напрямую выполнять сырой текст из графического поля QPlainTextEdit — им обязательно нужен физический файл на диске. Временные файлы позволяют сохранить текущий код пользователя в скрытую системную папку, безопасно выполнить его, а после закрытия программы автоматически стереть, чтобы не засорять жесткий диск компьютера.