Computer Assisted Medical Intervention Tool Kit  version 6.0
Loading...
Searching...
No Matches
camitk::ConsoleStream Class Reference

Provides a console windows, within the CamiTK application. More...

#include <ConsoleStream.h>

Signals

void appendText (QString text)
 use a signal to print safely even if cout/cerr are written from other thread

Public Member Functions

 ConsoleStream (QObject *parent=nullptr)
 default constructor, init(..) have to be called later, before first use
void free ()
 reset the state as it was before (stream use the old buffer again)
void init (std::ostream *stream, QTextEdit *textEdit)
 initialize ConsoleStream using both input stream and output text edit
void setStream (std::ostream *stream)
 set the value for the buffer to be replaced by the ConsoleStream
void setTextEdit (QTextEdit *textEdit)
 set the log QTextEdit
 ~ConsoleStream () override
 destructor: use free() to restore previous stream output buffer

Protected Member Functions

int_type overflow (int_type v) override
 rewriting of the inherited method overflow
std::streamsize xsputn (const char *p, std::streamsize n) override
 rewriting of the inherited method xsputn

Detailed Description

Provides a console windows, within the CamiTK application.

The console widget.

Usage:

#include <ConsoleStream.h>
...
// create your application
QApplication app(argc, argv);
// these redirect both cout/cerr
ConsoleStream cout(std::cout);
ConsoleStream cerr(std::cerr);
// now start using cout and cerr normally
std::cerr << "Oops"; // this goes to your debugger output
ConsoleStream(QObject *parent=nullptr)
default constructor, init(..) have to be called later, before first use
Definition ConsoleStream.h:77

Potential problem on windows (see thread)

  • std::string::clear() and std::string::push_back(...) don't exist, but myString.clear() can be substituted by myString.erase(myString.begin(), myString.end()) and myString.push_back(v) can be replaced by myString += v.
  • The usage of int_type seems to require a using std::ios::int_type statement.

Constructor & Destructor Documentation

◆ ConsoleStream()

camitk::ConsoleStream::ConsoleStream ( QObject * parent = nullptr)
inline

default constructor, init(..) have to be called later, before first use

◆ ~ConsoleStream()

camitk::ConsoleStream::~ConsoleStream ( )
inlineoverride

destructor: use free() to restore previous stream output buffer

References free().

Member Function Documentation

◆ appendText

void camitk::ConsoleStream::appendText ( QString text)
signal

use a signal to print safely even if cout/cerr are written from other thread

◆ free()

void camitk::ConsoleStream::free ( )
inline

reset the state as it was before (stream use the old buffer again)

Referenced by setStream(), and ~ConsoleStream().

◆ init()

void camitk::ConsoleStream::init ( std::ostream * stream,
QTextEdit * textEdit )
inline

initialize ConsoleStream using both input stream and output text edit

References setStream(), and setTextEdit().

◆ overflow()

int_type camitk::ConsoleStream::overflow ( int_type v)
inlineoverrideprotected

rewriting of the inherited method overflow

◆ setStream()

void camitk::ConsoleStream::setStream ( std::ostream * stream)
inline

set the value for the buffer to be replaced by the ConsoleStream

References free().

Referenced by init().

◆ setTextEdit()

void camitk::ConsoleStream::setTextEdit ( QTextEdit * textEdit)
inline

set the log QTextEdit

Referenced by init().

◆ xsputn()

std::streamsize camitk::ConsoleStream::xsputn ( const char * p,
std::streamsize n )
inlineoverrideprotected

rewriting of the inherited method xsputn


The documentation for this class was generated from the following file: