перенаправить std :: cout в QTextEdit
Возможно ли (и что более важно -how-) перенаправить поток вывода в QTextBox. Так что если я напишуstd::cout << "test"
где-нибудь в приложении оно перенаправляется в текстовое поле, которое я определил?
Я попробовал очевидное (где ui.textEdit - указатель на поле редактирования текста):
std::cout.rdbuf(ui.textEdit);
std::cout << "test";
Однако это не работает. (Очевидно). - Также не работает перенаправление cout на qDebug (и даже направление qDebug в текстовое поле).
Я использую QT4.8 кстати ...
РЕДАКТИРОВАТЬ: Итак, я попробовал решение, опубликованное в списке рассылки. Однако теперь обнаруживается нарушение прав доступа.
class MainInterface : public QMainWindow
{
Q_OBJECT
....
private:
QDebugStream qout
С конструктором:
MainInterface::MainInterface(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags),
qout(std::cout, ui.textEdit)
{
А в функции-члене размещена следующая строка:std::cout << "Project Loaded" << std::endl;
Эта строка теперь вызывает нарушение прав доступа из "qscoped_pointer". (Должен ли я опубликовать это более подробно как отдельный вопрос?)
РЕДАКТИРОВАТЬ: хорошо «решение» было объявить qout только после того, как ui.textEdit был полностью создан.