The tree at the top left shows global variables. There is a filter entry just below the tree (it currently shows “z_”). All objects can be expanded to show their members. Any item can be dragged either to the Qscintilla input/editor window on the bottom right, or to the table window on the bottom left. Callable objects (such as “z_func”, at the bottom of the tree) are displayed with their argument names in parentheses. Callable objects can be double-clicked; this pops up a dialog that lets you specify the arguments for the object call.

The black window on the top right is the interpreter output. sys.stdout and sys.stderr are redefined to point to this window. Output from sys.stderr is printed in red. User input which has been sent to the interpreter is printed in yellow. Also, this yellow user input is saved to a text file as a log. This log can be replayed with the Python execfile() builtin.
The window on the bottom right is a Qscintilla window. It is used to enter input into the Python interpreter. When Ctrl-Enter is pressed, all un-entered lines are sent to the interpreter, and those lines are then shaded grey. The usual Qscintilla syntax highlighting, word completion and folding is present.
When tree icons are dragged into this window, you can either drop their variable names (the default), or by Alt-dragging, you can drop the values of the objects you have dragged.
The table window on the bottom left is, in this picture, partly obscured by a dialog box which is titled “Calling z_func()”. This table window lists variables that have been dragged down into this window from the tree above. This table window lets you view and change the values of any variables that have been dragged down into it. The values in this table window are refreshed automatically whenever new commands are sent to the interpreter via the Qscintilla window. You can also manually refresh them by clicking the “Refresh:” button. You can also specify an auto-refresh every few seconds by entering the number of seconds you want to pass between refreshes into the spinbox to the right of the “Refresh:” button.
The dialog box that appears after clicking on a callable object contains a table of arguments that can be passed to the call. The top row shows the argument names (if any), and the bottom row shows the argument values. Icons can be dragged into the “value” cells of the bottom row, or new values can just be typed in. The arrows can add and remove extra arguments (represented as columns) to the end of the list. Columns can be rearranged by dragging. Clicking the “Call” button executes the call, and it shows up printed in yellow in the black window on the top right (see the example of the call to z_func at 17:51:56).
This set of GUI elements has been very useful to me in debugging problems that arise on the fly, when I haven't already started my test application under the debugger in Eric.