Я работаю над созданием графического интерфейса для перекомпиляции ядра Linux. Для этого мне нужно реализовать 4-5 команд Linux из Python. Я использую Qt как GUI-дизайнер. Я успешно выполнил команды с помощью вызова os.system()
. Но выход получается на консоли. Реальная проблема - вывод команды - это список, который требует непрерывной печати продолжительностью 20-25 минут. Как мы можем передать этот вывод консоли в текстовое поле, разработанное в Qt. Может ли кто-нибудь помочь мне реализовать операцию setSource()
в Qt, используя источник в качестве выходов в режиме реального времени.Как перенаправить вывод консоли Python в QTextBox
ответ
self.process = QProcess()
self.connect(self.process, SIGNAL("readyReadStdout()"), self.readOutput)
self.connect(self.process, SIGNAL("readyReadStderr()"), self.readErrors)
tarsourcepath="sudo tar xvpf "+ self.path1
self.process.setArguments(QStringList.split(" ",tarsourcepath))
self.process.start()
def readOutput(self):
self.textBrowser2.append(QString(self.process.readStdout()))
if self.process.isRunning()==False:
self.textBrowser2.append("\n Completed Successfully")
def readErrors(self):
self.textBrowser2.append("error: " + QString(self.process.readLineStderr()))
Это сделал работу достаточно хорошо для меня. Спасибо вам всем.
В основном я имею дело с wxPython, но есть http://diotavelli.net/PyQtWiki/Capturing_Output_from_a_Process решение, которое сработает?
На странице:
Проблема: Вы хотите запустить процесс , который печатает много информации на консоль и вывода изображения в текстовом редакторе или браузере, но результат является графическим интерфейсом, который зависает до завершения процесса .
Solution (один из многих возможных): Создать объект QProcess, подключите его сигналы некоторых слотов в классе, передать ему необходимые аргументы и запустить его. Данные по этапу процесса и stderr доставлены в ваши слоты.
Использование трубы приходит на ум. Вы можете использовать фоновый поток, который считывает выходные данные программы (и отправляет события в GUI всякий раз, когда добавляется новая строка).
Так основная идея заключается в следующем:
os.chdir("/usr/src/linux-2.6.34")
p = os.popen("make", "r")
try:
while True:
line = p.readline()
if not line:
break
# Replace this with a GUI update event (don't know anything about Qt, sorry)
print line
finally:
# Cf. http://docs.python.org/library/os.html#os.popen
programReturnValue = p.close() or 0
Идея хорошая, но проблема в том, что точка dot kno, если поток способен передать то, что вышло до сих пор. потому что я не думаю, что у нас есть временное различие для обновления. Но я мог найти ответ сверху ответа NIck. Спасибо, что помогли мне andiDog. – Kris
- 1. Как перенаправить вывод консоли python при выполнении командой os.system на QTextBox?
- 2. Как перенаправить вывод с консоли?
- 3. Как перенаправить вывод консоли в файл?
- 4. Как перенаправить вывод консоли в форму GUI?
- 5. Как перенаправить вывод консоли в текстовый файл
- 6. Перенаправить вывод консоли в строку в java
- 7. Python-Нужно перенаправить вывод консоли в файл журнала
- 8. Перенаправить вывод консоли в JavaFX TextArea?
- 9. Перенаправить выбранный вывод консоли в файл
- 10. Как перенаправить вывод сценария Python в файл
- 11. C#: Перенаправить вывод приложения консоли: как очистить вывод?
- 12. Python: Как перенаправить этот вывод?
- 13. Перенаправить вывод консоли только для одного метода
- 14. перенаправить вывод баночки файла в Python
- 15. python: как перенаправить вывод файла в поток
- 16. Как подавить вывод консоли в Python?
- 17. Как я могу легко перенаправить вывод консоли в NSTextView?
- 18. Как перенаправить весь вывод консоли в текстовое поле графического интерфейса?
- 19. Robot Framework: как перенаправить вывод консоли в файл
- 20. Как перенаправить вывод nslog в файл вместо консоли
- 21. Python: перенаправить вывод на несколько консолей?
- 22. Как перенаправить вывод клиента
- 23. Python: как перенаправить вывод с подпроцессом?
- 24. Перенаправить вывод печати в файл в Python
- 25. перенаправить вывод консоли в текстовое окно в приложении winform
- 26. Как перенаправить вывод консоли Octave на отдельную консоль?
- 27. Как перенаправить вывод консоли на консоль, которая запустила его?
- 28. Вывод консоли консоли в ISE?
- 29. Перенаправить вывод bash в скрипт python
- 30. Перенаправить вывод скрипта python в текстовый файл
Отличная помощь Bro, у нее действительно есть что-то для me.but, но я имею в виду только windows. Мне нужно сделать системные вызовы, используя it.ie, о выполнении некоторых программ с аргументами req. Но это была отличная помощь bro как i может получить возможность реализовать интерфейс приложения. Спасибо – Kris
снова попробовал и получил его успешно сделано bro. Я использовал start() notead of closeStdin(), он работал нормально.thanks – Kris