Найти - Пользователи
Полная версия: [PyQt4] вывод из Popen в виджет
Начало » GUI » [PyQt4] вывод из Popen в виджет
1
pasaranax
У меня есть QTextBrowser, который хочу использовать для вывода программы, запущенной через Popen. Воспользовался методом, предложенным тут и сделал класс:
class Out(object):
def __init__(self, console):
# console - это QTextBrowser или что-то подобное
self.console = console

def write(self, text):
self.console.append(text)
но при запуске Popen(cmd, stdout=out, stderr=out), где out это Out(), вылезает ошибка, что у Out() нет аттрибута fileno. Вопрос в том, как задать fileno или вообще, как правильно сделать свой класс для перенаправления вывода.
poltergeist
Для дочернего процесса нужны реальные объекты (пайпы, файлы, …) с реальными файловыми дескрипторами, по дефолту это дескрипторы родительского процесса (stdin, stdout, stderr - они наследуются). А тот случай тут не катит, т.к. там делался хак для функций питона в пределах одного процесса. В данном случае надо работать через пайпы и самостоятельно их читать и выводить в Out. Про то как это делается тут на форуме есть темы, сразу скажу что тут не всё так просто как хотелось бы.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB