def __init__(self, parent, source): super().__init__(parent) self.geometry(settings.get('view_window_geometry')) container = tk.Frame(self) container.pack(fill='both', expand=1, padx=5, pady=5) tk.Grid.columnconfigure(container, 0, weight=1) tk.Grid.rowconfigure(container, 0, weight=1) self.sourceview = SourceView(container) self.sourceview.grid(row=0, column=0, sticky='nesw') button_frame = tk.Frame(container) button_frame.grid(row=1, column=0, sticky='nesw') for x in range(0, 4): tk.Grid.columnconfigure(button_frame, x, weight=1, uniform='equal') tk.Button(button_frame, text='Save changes', command=self.save_changes).grid(row=0, column=0, sticky='nesw') tk.Button(button_frame, text='View PDF', command=self.view_pdf).grid(row=0, column=1, sticky='nesw') tk.Button(button_frame, text='Remove entry', command=self.delete).grid(row=0, column=2, sticky='nesw') tk.Button(button_frame, text='Close', command=self.destroy).grid(row=0, column=3, sticky='nesw') self.source = source self.load_values()
def __init__(self, exc_info, parent=None): QWidget.__init__(self, parent) etype, value, tb = exc_info self.tb = tb self.entries = traceback.extract_tb(tb) self.setWindowTitle('Python Error') msg = unicode(value).replace("\n", "<br>").replace(" ", " ") self.error = QLabel("<h1>" + etype.__name__ + "</h1><b>" + msg + "</b>") self.error.setTextInteractionFlags(Qt.TextSelectableByMouse) self.frames = FramesView() self.frames.setTraceback(tb) self.frames.selectionModel().currentChanged.connect( self.current_frame_changed) self.source = SourceView() self.splitterSrc = QSplitter(Qt.Horizontal) self.splitterSrc.addWidget(self.frames) self.splitterSrc.addWidget(self.source) self.splitterSrc.setStretchFactor(0, 1) self.splitterSrc.setStretchFactor(1, 2) self.variables = VariablesView() self.console = ConsoleWidget(exc_info) self.splitterMain = QSplitter(Qt.Vertical) self.splitterMain.addWidget(self.splitterSrc) self.splitterMain.addWidget(self.variables) self.splitterMain.addWidget(self.console) l = QVBoxLayout() l.addWidget(self.error) l.addWidget(self.splitterMain) self.setLayout(l) self.resize(800, 600) s = QSettings() self.splitterSrc.restoreState(s.value("/FirstAid/splitterSrc", "")) self.splitterMain.restoreState(s.value("/FirstAid/splitterMain", "")) self.restoreGeometry(s.value("/FirstAid/geometry", "")) # select the last frame self.frames.setCurrentIndex( self.frames.model().index(len(self.entries) - 1))
def __init__(self, parent): super().__init__(parent) container = tk.Frame(self) container.pack(fill='both', expand=1, padx=5, pady=5) tk.Grid.columnconfigure(container, 0, weight=1) tk.Grid.rowconfigure(container, 0, weight=1) self.sourceview = SourceView(container) self.sourceview.grid(row=0, column=0, sticky='nesw') tk.Button(container, text='Add source', command=self.add_source).grid(row=1, column=0, sticky='nesw', pady=(2, 0))