Я написал приложение, которое, помимо прочего, запускает некоторые «внутренние» процессы для выполнения каких-то задач.
Скорее всего, эти подпроцессы завершатся сбоем или будут иметь неожиданное поведение, поскольку они должны работать в довольно тяжелых условиях, поэтому я предпочитаю полностью контролировать их оператору.
ПРИМЕЧАНИЕ: Я запускаю эти процессы, используя subprocess
класс, основанный на модуле, вместо QProcess
, чтобы иметь некоторые дополнительные функции контроля над запущенным процессом.
В настоящее время я использую виджет QPlainTextEdit
, к которому я добавляю стандартный вывод / ошибку из подпроцесса, а также некоторые кнопки для быстрой отправки некоторых общих сигналов (INT, STOP, CONT, KILL, ..), но:
- В некоторых случаях было бы полезно также отправить некоторые данные. Хотя это можно сделать с помощью поля ввода текста, я бы предпочел использовать что-то более «профессиональное»
- Конечно, нет прямого способа интерпретировать специальные управляющие символы, такие как цветовые коды, движение курсора и т. Д.
- Мне пришлось реализовать управление прокруткой консоли с помощью автоматической прокрутки, но 100% -ная работа не гарантируется (иногда блокировка прокрутки не работает должным образом и т. Д.)
Итак: кто-нибудь знает что-то, что я мог бы использовать для удовлетворения этих потребностей?
Я обнаружил qtermwidget , но, похоже, он больше ориентирован на обработку процесса оболочки (а привязки Python, кажется, позволяют запускать только /bin/bash
) сам по себе, чем на связь с уже существующим вводом-выводом процесса.