Найти - Пользователи
Полная версия: PyQt и print
Начало » GUI » PyQt и print
1
villager
есть гуи на PyQt, по ходу работы из БД вытаскиваются и выполняются куски кода
нужна примивная отладка-хочу видеть результат работы команды print в отдельном окне
может у кого есть пример?
kublo
А разве нельзя скрипт из консоли запустить ( В случае Windows переименовать файл, что бы он имел расширение *.py , а не *.pyw) ? По идее туда и будут сыпаться ваши print'ы.
villager
kublo
А разве нельзя скрипт из консоли запустить ( В случае Windows переименовать файл, что бы он имел расширение *.py , а не *.pyw) ? По идее туда и будут сыпаться ваши print'ы.
все завернуто в py2exe
и “отладка” нужна на территории заказчика

самый простой вариант - использовать не print, а свою функцию с выводом в окно
но есть наверное вариант с перехватом stdout
truporez
Наверное правильнее использовать модуль logging
dartNNN
Logging +1)
Если по каким то причинам не устраивает, можно запускать скрипты через subprocess он вывод вернет. В доках все наглядно
Studentik
from PyQt4 import Qt as qt
import sys

app = qt.QApplication(sys.argv)
mw = qt.QMainWindow()
fr = qt.QFrame()
lt = qt.QVBoxLayout()
btn = qt.QPushButton("Raise some error")
te = qt.QTextEdit()
fr.setLayout(lt)
lt.addWidget(btn)
lt.addWidget(te)
mw.setCentralWidget(fr)

class Logger():
def __init__(self, output):
self.output = output #QTextEdit
def write(self, text):
self.output.moveCursor(qt.QTextCursor.End)
self.output.insertPlainText(text)

def on_btn_clicked(checked):
try:
print("This is my print")
raise Exception("This is my error")
except Exception as ex:
print(ex)

btn.clicked.connect(on_btn_clicked)

logger = Logger(te)
sys.stdout = logger
sys.stderr = logger

mw.show()
app.exec_()
villager
Studentik
Спасибо, то что надо
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