Уведомления

Группа в Telegram: @pythonsu

#1 Май 4, 2011 22:52:27

villager
От:
Зарегистрирован: 2008-11-04
Сообщения: 111
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt и print

есть гуи на PyQt, по ходу работы из БД вытаскиваются и выполняются куски кода
нужна примивная отладка-хочу видеть результат работы команды print в отдельном окне
может у кого есть пример?



Офлайн

#2 Май 5, 2011 09:13:23

kublo
От:
Зарегистрирован: 2011-04-08
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt и print

А разве нельзя скрипт из консоли запустить ( В случае Windows переименовать файл, что бы он имел расширение *.py , а не *.pyw) ? По идее туда и будут сыпаться ваши print'ы.



Офлайн

#3 Май 5, 2011 09:59:23

villager
От:
Зарегистрирован: 2008-11-04
Сообщения: 111
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt и print

kublo
А разве нельзя скрипт из консоли запустить ( В случае Windows переименовать файл, что бы он имел расширение *.py , а не *.pyw) ? По идее туда и будут сыпаться ваши print'ы.
все завернуто в py2exe
и “отладка” нужна на территории заказчика

самый простой вариант - использовать не print, а свою функцию с выводом в окно
но есть наверное вариант с перехватом stdout



Офлайн

#4 Май 5, 2011 15:00:52

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

PyQt и print

Наверное правильнее использовать модуль logging



Офлайн

#5 Май 5, 2011 17:47:18

dartNNN
От:
Зарегистрирован: 2009-12-08
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt и print

Logging +1)
Если по каким то причинам не устраивает, можно запускать скрипты через subprocess он вывод вернет. В доках все наглядно



Офлайн

#6 Май 5, 2011 18:26:31

Studentik
От:
Зарегистрирован: 2009-12-26
Сообщения: 99
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt и print

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_()



Офлайн

#7 Май 5, 2011 22:25:02

villager
От:
Зарегистрирован: 2008-11-04
Сообщения: 111
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt и print

Studentik
Спасибо, то что надо



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version