def add_pane(self): master = PanedWindow(bg=BACKGROUND_COLOR) master.pack(side=LEFT) master.propagate(0) canvas = self.get_map().get_canvas() hbar = Scrollbar(master, orient=HORIZONTAL) hbar.pack(side=BOTTOM, fill=X) hbar.config(command=canvas.xview) vbar = Scrollbar(master, orient=VERTICAL) vbar.pack(side=RIGHT, fill=Y) vbar.config(command=canvas.yview) canvas.config(xscrollcommand=hbar.set, yscrollcommand=vbar.set) canvas.pack(side=LEFT, expand=True, fill=BOTH) master.config(width=PANE_W, height=PANE_H) master.add(canvas)
def __init__(self, *args, **kwargs): ''' nodeName: The name of this node. Usually set by ModelNode.__setattr__ automatically. figureMeta: Meta information of figure. The rest parameters are passed to PanedWindow.__init__. ''' nodeName = kwargs.pop('nodeName', '') # lock super(FigureBook, self).__init__(nodeName=nodeName) figureMeta = None if 'figureMeta' not in kwargs \ else kwargs.pop('figureMeta') kwargs['orient'] = HORIZONTAL panedWindow = PanedWindow(*args, **kwargs) panedWindow.config(sashwidth=4, sashrelief=GROOVE, bg='forestgreen') # figureTabsStyle = Style() # figureTabsStyle.configure('Figure.TNotebook', tabposition='sw') # figureTabs = Notebook(panedWindow, style='Figure.TNotebook') figureTabs = Notebook(panedWindow) self.figureTabs = figureTabs figureTabs.bind('<<NotebookTabChanged>>', self.onTabChange) self.lockAttribute('figureTabs') if figureMeta: self.makeFigures(figureMeta) self.lockElements() panedWindow.add(figureTabs, stretch='always') listPan = PanedWindow(panedWindow, orient=VERTICAL) listPan.config(sashwidth=4, sashrelief=GROOVE, bg='forestgreen') panedWindow.add(listPan, stretch='never') listFrm = Frame(listPan) listPan.add(listFrm, stretch='always') Label(listFrm, text='Curves', bg='#b5d6b0').pack(side=TOP, fill=X) self.__list = ScrolledList(listFrm, relief=GROOVE) self.__list.listConfig(width=20) self.__list.listClick = self.onListClick self.__list.pack(fill=BOTH, expand=YES) listFrm = Frame(listPan) listPan.add(listFrm, stretch='never') Label(listFrm, text='Indicators', bg='#b5d6b0').pack(side=TOP, fill=X) self.__indicatorListbox = ScrolledList(listFrm, relief=GROOVE) self.__indicatorListbox.listConfig(width=20) self.__indicatorListbox.pack(fill=BOTH, expand=YES) with self.attributeLock: setMultiAttr( self, panedWindow=panedWindow, gridGroupObserver=self.GridGroupObserver(self), axisGroupObserver=self.AxisGroupObserver(self), clearGroupObserver=self.ClearGroupObserver(self), labelGroupObserver=self.LabelGroupObserver(self), indicatorGroupObserver=self.IndicatorGroupObserver(self), dataFigureObserver=self.DataFigureObserver(self), dataPool=[])
def __init__(self, *args, **kwargs): """ nodeName: The name of this node. Usually set by ModelNode.__setattr__ automatically. figureMeta: Meta information of figure. The rest parameters are passed to PanedWindow.__init__. """ nodeName = kwargs.pop("nodeName", "") # lock super(FigureBook, self).__init__(nodeName=nodeName) figureMeta = None if "figureMeta" not in kwargs else kwargs.pop("figureMeta") kwargs["orient"] = HORIZONTAL panedWindow = PanedWindow(*args, **kwargs) panedWindow.config(sashwidth=4, sashrelief=GROOVE, bg="forestgreen") # figureTabsStyle = Style() # figureTabsStyle.configure('Figure.TNotebook', tabposition='sw') # figureTabs = Notebook(panedWindow, style='Figure.TNotebook') figureTabs = Notebook(panedWindow) self.figureTabs = figureTabs figureTabs.bind("<<NotebookTabChanged>>", self.onTabChange) self.lockAttribute("figureTabs") if figureMeta: self.makeFigures(figureMeta) self.lockElements() panedWindow.add(figureTabs, stretch="always") listPan = PanedWindow(panedWindow, orient=VERTICAL) listPan.config(sashwidth=4, sashrelief=GROOVE, bg="forestgreen") panedWindow.add(listPan, stretch="never") listFrm = Frame(listPan) listPan.add(listFrm, stretch="always") Label(listFrm, text="Curves", bg="#b5d6b0").pack(side=TOP, fill=X) self.__list = ScrolledList(listFrm, relief=GROOVE) self.__list.listConfig(width=20) self.__list.listClick = self.onListClick self.__list.pack(fill=BOTH, expand=YES) listFrm = Frame(listPan) listPan.add(listFrm, stretch="never") Label(listFrm, text="Indicators", bg="#b5d6b0").pack(side=TOP, fill=X) self.__indicatorListbox = ScrolledList(listFrm, relief=GROOVE) self.__indicatorListbox.listConfig(width=20) self.__indicatorListbox.pack(fill=BOTH, expand=YES) with self.attributeLock: setMultiAttr( self, panedWindow=panedWindow, gridGroupObserver=self.GridGroupObserver(self), axisGroupObserver=self.AxisGroupObserver(self), clearGroupObserver=self.ClearGroupObserver(self), labelGroupObserver=self.LabelGroupObserver(self), indicatorGroupObserver=self.IndicatorGroupObserver(self), dataFigureObserver=self.DataFigureObserver(self), dataPool=[], )