crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

kemiisto
  опции профиля:
сообщение 17.10.2009, 17:35
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 27
Регистрация: 5.9.2009
Из: Осло, Норвегия
Пользователь №: 1054

Спасибо сказали: 2 раз(а)




Репутация:   0  


День добрый!

Есть объект некого класса из сторонней библиотеки. У него есть метод
bool SetLogFile(std::ostream* pos)


Далее, при вызвове определённых методов объекта, логирование происходит в поток pos.

Покажите пример, как сделать, чтоб логирование происходило в какой-нибудь widget. То есть, как перенаправить содержимое std::ostream?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
BRE
  опции профиля:
сообщение 17.10.2009, 17:56
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(kemiisto @ 17.10.2009, 18:35) *
Покажите пример, как сделать, чтоб логирование происходило в какой-нибудь widget. То есть, как перенаправить содержимое std::ostream?


std::ostringstream os;    // создали строковый поток

SetLogFile( &os );    // библиотека выводит строку в поток

// создаем кодек для кодировки в которой выводит текст библиотека (например для венды это CP1251)
QTextCodec *codec = QTextCodec::codecFromName( "Windows-1251" );

// Получили строку QString
QString str = codec->toUnicode( os.str().c_str() );

// А дальше можно добавлять ее в QTextEdit: append( str );
// или добавить ее в QStringListModel
// или ...


Сообщение отредактировал BRE - 17.10.2009, 17:58
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 28.5.2025, 22:28