def __init__(self, dock_tabbar, main): QObject.__init__(self) self.dock_tabbar = dock_tabbar self.main = main self.moving = False self.from_index = None self.to_index = None
def __init__(self, parent, repo_files, prefix, root_prefix, pip_packages): QObject.__init__(self) self._parent = parent self._repo_files = repo_files self._prefix = prefix self._root_prefix = root_prefix self._pip_packages_names = {} for p in pip_packages: n, v, b = conda_api_q.CondaProcess.split_canonical_name(p) local = '' if '(' in n: name = n.split('-(') n = name[0] local = name[-1].replace(')', '') self._pip_packages_names[n] = {} self._pip_packages_names[n]['version'] = v self._pip_packages_names[n]['local'] = local self._pip_packages_names[n]['build'] = b self.packages_names = None self.row_data = None self.packages_versions = None self._packages = None # Define helper function locally self._get_package_metadata = parent.get_package_metadata
def __init__(self, original_out): QObject.__init__(self) # If the file descriptor of the stream is < 0 then we are running in a no-external-console mode if not hasattr(original_out, 'fileno') or original_out.fileno() < 0: self._original_out = None else: self._original_out = original_out
def __init__(self, callee): QObject.__init__(self) self.moveToThread(qApp.thread()) self.callee = callee # Help should then give the correct doc self.__call__.__func__.__doc__ = callee.__doc__ self._args = None self._kwargs = None self._result = None self._exc_info = None
def __init__(self, parent, startup, version="", releases=None): QObject.__init__(self) self._parent = parent self.error = None self.latest_release = None self.startup = startup self.releases = releases if not version: self.version = __version__ else: self.version = version
def __init__(self, callee): QObject.__init__(self) qapp = QApplication.instance() if qapp is not None: self.moveToThread(qapp.thread()) self.qApp = qapp self.callee = callee # Help should then give the correct doc self.__call__.__func__.__doc__ = callee.__doc__ self._args = None self._kwargs = None self._result = None self._exc_info = None
def __init__(self, parent, repo_files, env, prefix): QObject.__init__(self) self._parent = parent self._repo_files = repo_files self._env = env self._prefix = prefix self.packages_names = None self.row_data = None self.packages_versions = None # define helper function locally self._get_package_metadata = parent.get_package_metadata
def __init__(self, cacheSize=DEFAULT_CACHE_SIZE, userAgent='(PyQt) TileMap 1.0', parent=None): QObject.__init__(self, parent=parent) self._manager = None self._cache = None self._cacheSize = cacheSize try: # Convert user agent to bytes userAgent = userAgent.encode() except: # no encode method exists. This hsould be the Python 2 case pass self._userAgent = userAgent self._tileInDownload = dict()
def __init__(self, parent): QObject.__init__(self) self.main = parent self.clients = {} self.requests = {} self.register_queue = {} # Register languages to create clients for for language in self.get_languages(): self.clients[language] = { 'status': self.STOPPED, 'config': self.get_language_config(language), 'instance': None } self.register_queue[language] = []
def __init__(self, parent): QObject.__init__(self, parent) self._parent = parent self._output = None self._partial = None self._stdout = None self._error = None self._parse = False self._function_called = "" self._name = None self._process = QProcess() self.set_root_prefix() # Signals self._process.finished.connect(self._call_conda_ready) self._process.readyReadStandardOutput.connect(self._call_conda_partial)
def __init__(self, widget, resultfilename=None): """ Construct test runner. Parameters ---------- widget : UnitTestWidget Unit test widget which constructs the test runner. resultfilename : str or None Name of file in which to store test results. If None, use default. """ QObject.__init__(self, widget) self.process = None if resultfilename is None: self.resultfilename = os.path.join(tempfile.gettempdir(), 'unittest.results') else: self.resultfilename = resultfilename
def __init__(self, parent, server_args_fmt='', server_settings={}, external_server=False, folder=getcwd(), language='python', plugin_configurations={}): QObject.__init__(self) # LSPMethodProviderMixIn.__init__(self) self.manager = parent self.zmq_in_socket = None self.zmq_out_socket = None self.zmq_in_port = None self.zmq_out_port = None self.transport_client = None self.language = language self.initialized = False self.ready_to_close = False self.request_seq = 1 self.req_status = {} self.plugin_registry = {} self.watched_files = {} self.req_reply = {} self.transport_args = [sys.executable, '-u', osp.join(LOCATION, 'transport', 'main.py')] self.external_server = external_server self.folder = folder self.plugin_configurations = plugin_configurations self.client_capabilites = CLIENT_CAPABILITES self.server_capabilites = SERVER_CAPABILITES self.context = zmq.Context() server_args = server_args_fmt % (server_settings) # transport_args = self.local_server_fmt % (server_settings) # if self.external_server: transport_args = self.external_server_fmt % (server_settings) self.server_args = [server_settings['cmd']] self.server_args += server_args.split(' ') self.transport_args += transport_args.split(' ') self.transport_args += ['--folder', folder] self.transport_args += ['--transport-debug', str(get_debug_level())]
def __init__(self, parent, on_finished=None, on_partial=None): QObject.__init__(self, parent) self._parent = parent self.output = None self.partial = None self.stdout = None self.error = None self._parse = False self._function_called = '' self._name = None self._process = QProcess() self._on_finished = on_finished self._process.finished.connect(self._call_conda_ready) self._process.readyReadStandardOutput.connect(self._call_conda_partial) if on_finished is not None: self._process.finished.connect(on_finished) if on_partial is not None: self._process.readyReadStandardOutput.connect(on_partial) self.set_root_prefix()
def __init__(self, parent, server_settings={}, folder=getcwd_or_home(), language='python'): QObject.__init__(self) # LSPMethodProviderMixIn.__init__(self) self.manager = parent self.zmq_in_socket = None self.zmq_out_socket = None self.zmq_in_port = None self.zmq_out_port = None self.transport_client = None self.language = language self.initialized = False self.ready_to_close = False self.request_seq = 1 self.req_status = {} self.watched_files = {} self.watched_folders = {} self.req_reply = {} self.transport_args = [ sys.executable, '-u', osp.join(LOCATION, 'transport', 'main.py') ] self.external_server = server_settings.get('external', False) self.stdio = server_settings.get('stdio', False) # Setting stdio on implies that external_server is off if self.stdio and self.external_server: error = ('If server is set to use stdio communication, ' 'then it cannot be an external server') logger.error(error) raise AssertionError(error) self.folder = folder self.plugin_configurations = server_settings.get('configurations', {}) self.client_capabilites = CLIENT_CAPABILITES self.server_capabilites = SERVER_CAPABILITES self.context = zmq.Context() server_args_fmt = server_settings.get('args', '') server_args = server_args_fmt.format(**server_settings) transport_args = self.external_server_fmt % (server_settings) self.server_args = [] if language == 'python': self.server_args += [sys.executable, '-m'] self.server_args += [server_settings['cmd']] if len(server_args) > 0: self.server_args += server_args.split(' ') self.transport_args += transport_args.split(' ') self.transport_args += ['--folder', folder] self.transport_args += ['--transport-debug', str(get_debug_level())] if not self.stdio: self.transport_args += ['--external-server'] else: self.transport_args += ['--stdio-server'] self.external_server = True
def __init__(self): QObject.__init__(self) self.dialogs = {}
def __init__(self): QObject.__init__(self) self.queue = [] self.lock = threading.Lock()
def __init__(self): QObject.__init__(self) self.dialogs = {} self.namespace = None
def __init__(self, servo, watched, base_period): QObject.__init__(self) self._servo = servo self._watched = watched self._base_period = base_period
def __init__(self, editor, lsp_manager): QObject.__init__(self) self.editor = editor self.lsp_manager = lsp_manager
def __init__(self, target: QObject, cb=None): QObject.__init__(self) self.target = target self.cb = cb
def __init__(self, parent=None): QObject.__init__(self, parent) self.__data = QwtPlotDirectPainter_PrivateData()
def __init__(self, parent, server_settings={}, folder=getcwd_or_home(), language='python'): QObject.__init__(self) self.manager = parent self.zmq_in_socket = None self.zmq_out_socket = None self.zmq_in_port = None self.zmq_out_port = None self.transport = None self.server = None self.stdio_pid = None self.notifier = None self.language = language self.initialized = False self.ready_to_close = False self.request_seq = 1 self.req_status = {} self.watched_files = {} self.watched_folders = {} self.req_reply = {} self.server_unresponsive = False self.transport_unresponsive = False # Select a free port to start the server. # NOTE: Don't use the new value to set server_setttings['port']!! # That's not required because this doesn't really correspond to a # change in the config settings of the server. Else a server # restart would be generated when doing a # workspace/didChangeConfiguration request. if not server_settings['external']: self.server_port = select_port( default_port=server_settings['port']) else: self.server_port = server_settings['port'] self.server_host = server_settings['host'] self.external_server = server_settings.get('external', False) self.stdio = server_settings.get('stdio', False) # Setting stdio on implies that external_server is off if self.stdio and self.external_server: error = ('If server is set to use stdio communication, ' 'then it cannot be an external server') logger.error(error) raise AssertionError(error) self.folder = folder self.configurations = server_settings.get('configurations', {}) self.client_capabilites = CLIENT_CAPABILITES self.server_capabilites = SERVER_CAPABILITES self.context = zmq.Context() # To set server args self._server_args = server_settings.get('args', '') self._server_cmd = server_settings['cmd'] # Save requests name and id. This is only necessary for testing. self._requests = []
def __init__(self, callee): QObject.__init__(self) self.callee = callee functools.update_wrapper(self.__call__.__func__, callee) self._moved_to_app = False self._store_function_args(None, None)
def __init__(self, parent=None): QObject.__init__(self, parent) FileSystemEventHandler.__init__(self)
def __init__(self, dock_tabbar, main): QObject.__init__(self) self.dock_tabbar = dock_tabbar self.main = main self.from_index = None self.dock_tabbar.setStyleSheet(self._tabbar_stylesheet)
def __init__(self, plot): QObject.__init__(self, plot) for axis_id in QwtPlot.AXES: scaleWidget = plot.axisWidget(axis_id) if scaleWidget: scaleWidget.installEventFilter(self)
def __init__(self, canvas, num): QObject.__init__(self) FigureManagerBase.__init__(self, canvas, num) # Patch show/destroy to be thread aware self._destroy_orig = self.destroy self.destroy = QAppThreadCall(self._destroy_orig) self._show_orig = self.show self.show = QAppThreadCall(self._show_orig) self._window_activated_orig = self._window_activated self._window_activated = QAppThreadCall(self._window_activated_orig) self._widgetclosed_orig = self._widgetclosed self._widgetclosed = QAppThreadCall(self._widgetclosed_orig) self.set_window_title_orig = self.set_window_title self.set_window_title = QAppThreadCall(self.set_window_title_orig) self.fig_visibility_changed_orig = self.fig_visibility_changed self.fig_visibility_changed = QAppThreadCall(self.fig_visibility_changed_orig) self.window = FigureWindow(canvas) self.window.activated.connect(self._window_activated) self.window.closing.connect(canvas.close_event) self.window.closing.connect(self._widgetclosed) self.window.visibility_changed.connect(self.fig_visibility_changed) self.window.setWindowTitle("Figure %d" % num) canvas.figure.set_label("Figure %d" % num) # Give the keyboard focus to the figure instead of the # manager; StrongFocus accepts both tab and click to focus and # will enable the canvas to process event w/o clicking. # ClickFocus only takes the focus is the window has been # clicked # on. http://qt-project.org/doc/qt-4.8/qt.html#FocusPolicy-enum or # http://doc.qt.digia.com/qt/qt.html#FocusPolicy-enum canvas.setFocusPolicy(Qt.StrongFocus) canvas.setFocus() self.window._destroying = False # add text label to status bar self.statusbar_label = QLabel() self.window.statusBar().addWidget(self.statusbar_label) self.toolbar = self._get_toolbar(canvas, self.window) if self.toolbar is not None: self.window.addToolBar(self.toolbar) self.toolbar.message.connect(self.statusbar_label.setText) self.toolbar.sig_grid_toggle_triggered.connect(self.grid_toggle) self.toolbar.sig_toggle_fit_triggered.connect(self.fit_toggle) tbs_height = self.toolbar.sizeHint().height() else: tbs_height = 0 # resize the main window so it will display the canvas with the # requested size: cs = canvas.sizeHint() sbs = self.window.statusBar().sizeHint() self._status_and_tool_height = tbs_height + sbs.height() height = cs.height() + self._status_and_tool_height self.window.resize(cs.width(), height) self.fit_browser = FitPropertyBrowser(canvas) self.fit_browser.closing.connect(self.handle_fit_browser_close) self.window.setCentralWidget(canvas) self.window.addDockWidget(Qt.LeftDockWidgetArea, self.fit_browser) self.fit_browser.hide() if matplotlib.is_interactive(): self.window.show() canvas.draw_idle() def notify_axes_change(fig): # This will be called whenever the current axes is changed if self.toolbar is not None: self.toolbar.update() canvas.figure.add_axobserver(notify_axes_change) # Register canvas observers self._cids = [] self._cids.append(self.canvas.mpl_connect('button_press_event', self.on_button_press)) self.window.raise_()
def __init__(self, parent, editor, lsp_manager): QObject.__init__(self, parent) self.editor = editor self.lsp_manager = lsp_manager self.editor.sig_perform_lsp_request.connect(self.perform_request) self.sig_initialize.connect(self.initialize_callback)
def __init__(self, input_condition): QObject.__init__(self) self.input_data = None self.input_condition = input_condition
def __init__(self): QObject.__init__(self) self.editor = EditorMock()
def __init__(self, style, *args, **kwargs): QObject.__init__(self, *args, **kwargs) self.style = None self.last_frame = None self.active = True self.change_style(style)
def __init__(self, parent): QObject.__init__(self, parent) SpyderPlugin.__init__(self, parent) self.main = parent
def __init__(self, config_file: str): QObject.__init__(self) self._config_file = config_file
def __init__(self, canvas, num): assert QAppThreadCall.is_qapp_thread( ), "FigureManagerWorkbench cannot be created outside of the QApplication thread" QObject.__init__(self) parent, flags = get_window_config() self.window = FigureWindow(canvas, parent=parent, window_flags=flags) self.window.activated.connect(self._window_activated) self.window.closing.connect(canvas.close_event) self.window.closing.connect(self.destroy) self.window.visibility_changed.connect(self.fig_visibility_changed) self.window.setWindowTitle("Figure %d" % num) canvas.figure.set_label("Figure %d" % num) FigureManagerBase.__init__(self, canvas, num) # Give the keyboard focus to the figure instead of the # manager; StrongFocus accepts both tab and click to focus and # will enable the canvas to process event w/o clicking. # ClickFocus only takes the focus is the window has been # clicked # on. http://qt-project.org/doc/qt-4.8/qt.html#FocusPolicy-enum or # http://doc.qt.digia.com/qt/qt.html#FocusPolicy-enum canvas.setFocusPolicy(Qt.StrongFocus) canvas.setFocus() self.window._destroying = False # add text label to status bar self.statusbar_label = QLabel() self.window.statusBar().addWidget(self.statusbar_label) self.plot_options_dialog = None self.toolbar = self._get_toolbar(canvas, self.window) if self.toolbar is not None: self.window.addToolBar(self.toolbar) self.toolbar.message.connect(self.statusbar_label.setText) self.toolbar.sig_grid_toggle_triggered.connect(self.grid_toggle) self.toolbar.sig_toggle_fit_triggered.connect(self.fit_toggle) self.toolbar.sig_toggle_superplot_triggered.connect(self.superplot_toggle) self.toolbar.sig_copy_to_clipboard_triggered.connect(self.copy_to_clipboard) self.toolbar.sig_plot_options_triggered.connect(self.launch_plot_options) self.toolbar.sig_plot_help_triggered.connect(self.launch_plot_help) self.toolbar.sig_generate_plot_script_clipboard_triggered.connect( self.generate_plot_script_clipboard) self.toolbar.sig_generate_plot_script_file_triggered.connect( self.generate_plot_script_file) self.toolbar.sig_home_clicked.connect(self.set_figure_zoom_to_display_all) self.toolbar.sig_waterfall_reverse_order_triggered.connect( self.waterfall_reverse_line_order) self.toolbar.sig_waterfall_offset_amount_triggered.connect( self.launch_waterfall_offset_options) self.toolbar.sig_waterfall_fill_area_triggered.connect( self.launch_waterfall_fill_area_options) self.toolbar.sig_waterfall_conversion.connect(self.update_toolbar_waterfall_plot) self.toolbar.sig_change_line_collection_colour_triggered.connect( self.change_line_collection_colour) self.toolbar.setFloatable(False) tbs_height = self.toolbar.sizeHint().height() else: tbs_height = 0 # resize the main window so it will display the canvas with the # requested size: cs = canvas.sizeHint() sbs = self.window.statusBar().sizeHint() self._status_and_tool_height = tbs_height + sbs.height() height = cs.height() + self._status_and_tool_height self.window.resize(cs.width(), height) self.fit_browser = FitPropertyBrowser(canvas, ToolbarStateManager(self.toolbar)) self.fit_browser.closing.connect(self.handle_fit_browser_close) self.window.setCentralWidget(canvas) self.window.addDockWidget(Qt.LeftDockWidgetArea, self.fit_browser) self.superplot = None # Need this line to stop the bug where the dock window snaps back to its original size after resizing. # 0 argument is arbitrary and has no effect on fit widget size # This is a qt bug reported at (https://bugreports.qt.io/browse/QTBUG-65592) if QT_VERSION >= LooseVersion("5.6"): self.window.resizeDocks([self.fit_browser], [1], Qt.Horizontal) self.fit_browser.hide() if matplotlib.is_interactive(): self.window.show() canvas.draw_idle() def notify_axes_change(fig): # This will be called whenever the current axes is changed if self.toolbar is not None: self.toolbar.update() canvas.figure.add_axobserver(notify_axes_change) # Register canvas observers self._fig_interaction = FigureInteraction(self) self._ads_observer = FigureManagerADSObserver(self) self.window.raise_()
def __init__(self, parent, server_settings={}, folder=getcwd_or_home(), language='python'): QObject.__init__(self) self.manager = parent self.zmq_in_socket = None self.zmq_out_socket = None self.zmq_in_port = None self.zmq_out_port = None self.transport_client = None self.lsp_server = None self.notifier = None self.language = language self.initialized = False self.ready_to_close = False self.request_seq = 1 self.req_status = {} self.watched_files = {} self.watched_folders = {} self.req_reply = {} # Select a free port to start the server. # NOTE: Don't use the new value to set server_setttings['port']!! # That's not required because this doesn't really correspond to a # change in the config settings of the server. Else a server # restart would be generated when doing a # workspace/didChangeConfiguration request. if not server_settings['external']: self.server_port = select_port( default_port=server_settings['port']) else: self.server_port = server_settings['port'] self.server_host = server_settings['host'] self.transport_args = [ sys.executable, '-u', osp.join(LOCATION, 'transport', 'main.py') ] self.external_server = server_settings.get('external', False) self.stdio = server_settings.get('stdio', False) # Setting stdio on implies that external_server is off if self.stdio and self.external_server: error = ('If server is set to use stdio communication, ' 'then it cannot be an external server') logger.error(error) raise AssertionError(error) self.folder = folder self.plugin_configurations = server_settings.get('configurations', {}) self.client_capabilites = CLIENT_CAPABILITES self.server_capabilites = SERVER_CAPABILITES self.context = zmq.Context() server_args_fmt = server_settings.get('args', '') server_args = server_args_fmt.format(host=self.server_host, port=self.server_port) transport_args_fmt = '--server-host {host} --server-port {port} ' transport_args = transport_args_fmt.format(host=self.server_host, port=self.server_port) self.server_args = [] if self.language == 'python': self.server_args += [sys.executable, '-m'] self.server_args += [server_settings['cmd']] if len(server_args) > 0: self.server_args += server_args.split(' ') self.server_unresponsive = False self.transport_args += transport_args.split(' ') self.transport_args += ['--folder', folder] self.transport_args += ['--transport-debug', str(get_debug_level())] if not self.stdio: self.transport_args += ['--external-server'] else: self.transport_args += ['--stdio-server'] self.external_server = True self.transport_unresponsive = False
def __init__(self): QObject.__init__(self) logging.Handler.__init__(self)
def __init__(self, parent): """Handler main constructor.""" QObject.__init__(self, parent)
def __init__(self, level=logging.NOTSET, parent=None): logging.Handler.__init__(self, level=level) QObject.__init__(self, parent=parent)
def __init__(self, canvas, num): QObject.__init__(self) FigureManagerBase.__init__(self, canvas, num) # Patch show/destroy to be thread aware self._destroy_orig = self.destroy self.destroy = QAppThreadCall(self._destroy_orig) self._show_orig = self.show self.show = QAppThreadCall(self._show_orig) self._window_activated_orig = self._window_activated self._window_activated = QAppThreadCall(self._window_activated_orig) self._widgetclosed_orig = self._widgetclosed self._widgetclosed = QAppThreadCall(self._widgetclosed_orig) self.set_window_title_orig = self.set_window_title self.set_window_title = QAppThreadCall(self.set_window_title_orig) self.fig_visibility_changed_orig = self.fig_visibility_changed self.fig_visibility_changed = QAppThreadCall( self.fig_visibility_changed_orig) self.window = FigureWindow(canvas) self.window.activated.connect(self._window_activated) self.window.closing.connect(canvas.close_event) self.window.closing.connect(self._widgetclosed) self.window.visibility_changed.connect(self.fig_visibility_changed) self.window.setWindowTitle("Figure %d" % num) canvas.figure.set_label("Figure %d" % num) # Give the keyboard focus to the figure instead of the # manager; StrongFocus accepts both tab and click to focus and # will enable the canvas to process event w/o clicking. # ClickFocus only takes the focus is the window has been # clicked # on. http://qt-project.org/doc/qt-4.8/qt.html#FocusPolicy-enum or # http://doc.qt.digia.com/qt/qt.html#FocusPolicy-enum canvas.setFocusPolicy(Qt.StrongFocus) canvas.setFocus() self.window._destroying = False # add text label to status bar self.statusbar_label = QLabel() self.window.statusBar().addWidget(self.statusbar_label) self.toolbar = self._get_toolbar(canvas, self.window) if self.toolbar is not None: self.window.addToolBar(self.toolbar) self.toolbar.message.connect(self.statusbar_label.setText) self.toolbar.sig_grid_toggle_triggered.connect(self.grid_toggle) tbs_height = self.toolbar.sizeHint().height() else: tbs_height = 0 # resize the main window so it will display the canvas with the # requested size: cs = canvas.sizeHint() sbs = self.window.statusBar().sizeHint() self._status_and_tool_height = tbs_height + sbs.height() height = cs.height() + self._status_and_tool_height self.window.resize(cs.width(), height) self.window.setCentralWidget(canvas) if matplotlib.is_interactive(): self.window.show() canvas.draw_idle() def notify_axes_change(fig): # This will be called whenever the current axes is changed if self.toolbar is not None: self.toolbar.update() canvas.figure.add_axobserver(notify_axes_change) # Register canvas observers self._cids = [] self._cids.append( self.canvas.mpl_connect('button_press_event', self.on_button_press)) self.window.raise_()
def __init__(self): QObject.__init__(self) self.lsp_editor_settings = {}
def __init__(self, parent): QObject.__init__(self) self._parent = parent self.error = None self.latest_release = None
def __init__(self, original_out): QObject.__init__(self) self.__original_out = original_out
def __init__(self, parent=None): QObject.__init__(self, parent) self.__data = QwtPlotRenderer_PrivateData()
def __init__(self): QObject.__init__(self)
def __init__(self): QObject.__init__(self) self.editor = EditorMock() self.projects = ProjectsMock()
def __init__(self, size_str, *args, **kwargs): QObject.__init__(self, *args, **kwargs) self.active = True self.setup_camera() self.set_camera_size(size_str)
def __init__(self, canvas, num): QObject.__init__(self) FigureManagerBase.__init__(self, canvas, num) # Patch show/destroy to be thread aware self._destroy_orig = self.destroy self.destroy = QAppThreadCall(self._destroy_orig) self._show_orig = self.show self.show = QAppThreadCall(self._show_orig) self._window_activated_orig = self._window_activated self._window_activated = QAppThreadCall(self._window_activated_orig) self.set_window_title_orig = self.set_window_title self.set_window_title = QAppThreadCall(self.set_window_title_orig) self.fig_visibility_changed_orig = self.fig_visibility_changed self.fig_visibility_changed = QAppThreadCall(self.fig_visibility_changed_orig) parent, flags = get_window_config() self.window = FigureWindow(canvas, parent=parent, window_flags=flags) self.window.activated.connect(self._window_activated) self.window.closing.connect(canvas.close_event) self.window.closing.connect(self.destroy) self.window.visibility_changed.connect(self.fig_visibility_changed) self.window.setWindowTitle("Figure %d" % num) canvas.figure.set_label("Figure %d" % num) # Give the keyboard focus to the figure instead of the # manager; StrongFocus accepts both tab and click to focus and # will enable the canvas to process event w/o clicking. # ClickFocus only takes the focus is the window has been # clicked # on. http://qt-project.org/doc/qt-4.8/qt.html#FocusPolicy-enum or # http://doc.qt.digia.com/qt/qt.html#FocusPolicy-enum canvas.setFocusPolicy(Qt.StrongFocus) canvas.setFocus() self.window._destroying = False # add text label to status bar self.statusbar_label = QLabel() self.window.statusBar().addWidget(self.statusbar_label) self.plot_options_dialog = None self.toolbar = self._get_toolbar(canvas, self.window) if self.toolbar is not None: self.window.addToolBar(self.toolbar) self.toolbar.message.connect(self.statusbar_label.setText) self.toolbar.sig_grid_toggle_triggered.connect(self.grid_toggle) self.toolbar.sig_toggle_fit_triggered.connect(self.fit_toggle) self.toolbar.sig_plot_options_triggered.connect(self.launch_plot_options) self.toolbar.sig_generate_plot_script_clipboard_triggered.connect( self.generate_plot_script_clipboard) self.toolbar.sig_generate_plot_script_file_triggered.connect( self.generate_plot_script_file) self.toolbar.sig_home_clicked.connect(self.set_figure_zoom_to_display_all) self.toolbar.sig_waterfall_reverse_order_triggered.connect( self.waterfall_reverse_line_order) self.toolbar.sig_waterfall_offset_amount_triggered.connect( self.launch_waterfall_offset_options) self.toolbar.sig_waterfall_fill_area_triggered.connect( self.launch_waterfall_fill_area_options) self.toolbar.sig_waterfall_conversion.connect(self.update_toolbar_waterfall_plot) self.toolbar.setFloatable(False) tbs_height = self.toolbar.sizeHint().height() else: tbs_height = 0 # resize the main window so it will display the canvas with the # requested size: cs = canvas.sizeHint() sbs = self.window.statusBar().sizeHint() self._status_and_tool_height = tbs_height + sbs.height() height = cs.height() + self._status_and_tool_height self.window.resize(cs.width(), height) self.fit_browser = FitPropertyBrowser(canvas, ToolbarStateManager(self.toolbar)) self.fit_browser.closing.connect(self.handle_fit_browser_close) self.window.setCentralWidget(canvas) self.window.addDockWidget(Qt.LeftDockWidgetArea, self.fit_browser) self.fit_browser.hide() if matplotlib.is_interactive(): self.window.show() canvas.draw_idle() def notify_axes_change(fig): # This will be called whenever the current axes is changed if self.toolbar is not None: self.toolbar.update() canvas.figure.add_axobserver(notify_axes_change) # Register canvas observers self._fig_interaction = FigureInteraction(self) self._ads_observer = FigureManagerADSObserver(self) self.window.raise_()