def __init__(self, settings, parent, name): super(BaseFrame, self).__init__(settings, parent, name) self.plugin_mgr = MetaPluginManager() self.name = name self._is_active = False self._intervals = list() self._tab_name = None self.process_control = ProcessControl(self) layout = QVBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) self._tab = TabControl(self) tabs = [self._tab_name] if self.TABS is None else self.TABS for name in tabs: frame = QFrame(self._tab) frame._input_cnt = 0 layout2 = QGridLayout(frame) layout2.setContentsMargins(20, 20, 20, 20) self._tab.add_tab(name, frame) self._tab.set_active_index(0) self._tab.currentChanged.connect(self.on_tab_changed) layout.addWidget(self._tab) layout.addWidget(self.process_control)
class BaseFrame(TraitDisplayMixin): ICON = ":cecog_analyzer_icon" TABS = None CONTROL = CONTROL_1 toggle_tabs = pyqtSignal(str) status_message = pyqtSignal(str) def __init__(self, settings, parent, name): super(BaseFrame, self).__init__(settings, parent, name) self.plugin_mgr = MetaPluginManager() self.name = name self._is_active = False self._intervals = list() self._tab_name = None self.process_control = ProcessControl(self) layout = QVBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) self._tab = TabControl(self) tabs = [self._tab_name] if self.TABS is None else self.TABS for name in tabs: frame = QFrame(self._tab) frame._input_cnt = 0 layout2 = QGridLayout(frame) layout2.setContentsMargins(20, 20, 20, 20) self._tab.add_tab(name, frame) self._tab.set_active_index(0) self._tab.currentChanged.connect(self.on_tab_changed) layout.addWidget(self._tab) layout.addWidget(self.process_control) @property def log_window(self): return self.parent().log_window @pyqtSlot('int') def on_tab_changed(self, index): self.tab_changed(index) def set_tab_name(self, name): self._tab_name = name def set_active(self, state=True): self._is_active = state def _get_frame(self, name=None): if name is None: name = self._tab_name return self._tab.get_frame(name) def add_expanding_spacer(self): frame = self._get_frame(name=self._tab_name) dummy = QWidget(frame) dummy.setMinimumSize(0,0) dummy.setSizePolicy(QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding)) frame.layout().addWidget(dummy, frame._input_cnt, 0) frame._input_cnt += 1 def add_line(self): frame = self._get_frame(name=self._tab_name) line = QFrame(frame) line.setFrameShape(QFrame.HLine) frame.layout().addWidget(line, frame._input_cnt, 0, 1, 2) frame._input_cnt += 1 def add_pixmap(self, pixmap, align=Qt.AlignLeft): frame = self._get_frame(name=self._tab_name) label = QLabel(frame) label.setPixmap(pixmap) frame.layout().addWidget(label, frame._input_cnt, 0, 1, 2, align) frame._input_cnt += 1 def page_changed(self): """Abstract method. Invoked by the AnalyzerMainWindow when this frame is activated for display. """ pass def settings_loaded(self): """change notification called after a settings file is loaded.""" pass def tab_changed(self, index): pass def add_plugin_bay(self, plugin_manager, settings): frame = self._get_frame(self._tab_name) frame_layout = frame.layout() frame_layout.addWidget( PluginBay(self, plugin_manager, settings, self.parent().assistant), frame._input_cnt, 0, 1, 2) frame._input_cnt += 1