# ConsoleWidget

class pyqtgraph.console.ConsoleWidget(parent=None, namespace=None, historyFile=None, text=None, editor=None)

  Widget displaying console output and accepting command input. Implements:

  > - eval python expressions / exec python statements

  > - storable history of commands

  > - exception handling allowing commands to be interpreted in the context of any level in the exception stack frame

  Why not just use python in an interactive shell (or ipython) ? There are a few reasons:

  > - pyside does not yet allow Qt event processing and interactive shell at the same time

  > - on some systems, typing in the console _blocks_ the qt event loop until the user presses enter. This can be baffling and frustrating to users since it would appear the program has frozen.

  > - some terminals (eg windows cmd.exe) have notoriously unfriendly interfaces

  > - ability to add extra features like exception stack introspection

  > - ability to have multiple interactive prompts, including for spawned sub-processes

  catchAllExceptions(catch=True)

    If True, the console will catch all unhandled exceptions and display the stack trace. Each exception caught clears the last.

  catchNextException(catch=True)

    If True, the console will catch the next unhandled exception and display the stack trace.

  displayException()

    Display the current exception and stack.

  loadHistory()

    Return the list of previously-invoked command strings (or None).

  saveHistory(history)

    Store the list of previously-invoked command strings.

  setStack(frame=None, tb=None)

    Display a call stack and exception traceback.

    This allows the user to probe the contents of any frame in the given stack.

    frame may either be a Frame instance or None, in which case the current frame is retrieved from `sys._getframe()`.

    If tb is provided then the frames in the traceback will be appended to the end of the stack list. If tb is None, then sys.exc_info() will be checked instead.

  write(strn, html=False, scrollToBottom='auto')

    Write a string into the console.

    If scrollToBottom is ‘auto’, then the console is automatically scrolled to fit the new text only if it was already at the bottom.