Warning

This documentation is for an old version of IPython. You can find docs for newer versions here.

Module: qt.console.mainwindow

The Qt MainWindow for the QtConsole

This is a tabbed pseudo-terminal of IPython sessions, with a menu bar for common actions.

1 Class

class IPython.qt.console.mainwindow.MainWindow(QWidget parent=None, Qt.WindowFlags flags=0)

Bases: PyQt4.QtGui.QMainWindow

__init__(app, confirm_exit=True, new_frontend_factory=None, slave_frontend_factory=None)

Create a tabbed MainWindow for managing IPython FrontendWidgets

Parameters:

app : reference to QApplication parent

confirm_exit : bool, optional

Whether we should prompt on close of tabs

new_frontend_factory : callable

A callable that returns a new IPythonWidget instance, attached to its own running kernel.

slave_frontend_factory : callable

A callable that takes an existing IPythonWidget, and returns a new IPythonWidget instance, attached to the same kernel.

add_menu_action(menu, action, defer_shortcut=False)

Add action to menu as well as self

So that when the menu bar is invisible, its actions are still available.

If defer_shortcut is True, set the shortcut context to widget-only, where it will avoid conflict with shortcuts already bound to the widgets themselves.

add_tab_with_frontend(frontend, name=None)

insert a tab with a given frontend in the tab bar, and give it a name

closeEvent(event)

Forward the close event to every tabs contained by the windows

close_tab(current_tab)

Called when you need to try to close a tab.

It takes the number of the tab to be closed as argument, or a reference to the widget inside this tab

create_tab_with_current_kernel()

create a new frontend attached to the same kernel as the current tab

create_tab_with_new_frontend()

create a new frontend and attach it to a new tab

find_master_tab(tab, as_list=False)

Try to return the frontend that owns the kernel attached to the given widget/tab.

Only finds frontend owned by the current application. Selection based on port of the kernel might be inaccurate if several kernel on different ip use same port number.

This function does the conversion tabNumber/widget if needed. Might return None if no master widget (non local kernel) Will crash IPython if more than 1 masterWidget

When asList set to True, always return a list of widget(s) owning the kernel. The list might be empty or containing several Widget.

find_slave_widgets(tab)

return all the frontends that do not own the kernel attached to the given widget/tab.

Only find frontends owned by the current application. Selection based on connection file of the kernel.

This function does the conversion tabNumber/widget if needed.

next_kernel_id

constantly increasing counter for kernel IDs

update_tab_bar_visibility()

update visibility of the tabBar depending of the number of tab

0 or 1 tab, tabBar hidden 2+ tabs, tabBar visible

send a self.close if number of tab ==0

need to be called explicitly, or be connected to tabInserted/tabRemoved

1 Function

IPython.qt.console.mainwindow.background(f)

call a function in a simple thread, to prevent blocking