def __init__(self, *args, **kwargs): self._app = Application.instance self.__topwin = kwargs.pop('topwin') Group.__init__(self, *args, **kwargs) frm = Frame(self) self.__center = ParamItem(frm) setMultiAttr(self.__center, labelText='center(deg)', entryText=0, checkFunc=self._app.checkInt, entryWidth=5, labelWidth=10) self.__center.pack(side=TOP) self._app.balloon.bind_widget( self.__center, balloonmsg='Specify the beam center here.') self.__width = ParamItem(frm) setMultiAttr(self.__width, labelText='width(deg)', entryText=20, checkFunc=self._app.checkInt, entryWidth=5, labelWidth=10) self.__width.pack(side=TOP) self._app.balloon.bind_widget( self.__width, balloonmsg='Specify the beam width here.') self.__uiImages = [] imageAddBtn = ImageTk.PhotoImage( file=uiImagePath('Pattern_Add_Button.png')) self.__uiImages.append(imageAddBtn) btn = Button(frm, image=imageAddBtn, command=self.onAdd) btn.pack(side=LEFT) self._app.balloon.bind_widget( btn, balloonmsg='Add new beam to the ideal pattern.') imageDelBtn = ImageTk.PhotoImage( file=uiImagePath('Pattern_Del_Button.png')) self.__uiImages.append(imageDelBtn) btn = Button(frm, image=imageDelBtn, command=self.onDel) btn.pack(side=LEFT) self._app.balloon.bind_widget( btn, balloonmsg='Remove the selected beam in the listbox.') imageClrBtn = ImageTk.PhotoImage( file=uiImagePath('Pattern_Clear_Button.png')) self.__uiImages.append(imageClrBtn) btn = Button(frm, image=imageClrBtn, command=self.onClear) btn.pack(side=LEFT) self._app.balloon.bind_widget( btn, balloonmsg='Clear the listbox of the beam parameters.') imagePlotBtn = ImageTk.PhotoImage( file=uiImagePath('Pattern_Plot_Button.png')) self.__uiImages.append(imagePlotBtn) btn = Button(frm, image=imagePlotBtn, command=self.onPlotIdealPattern) btn.pack(side=LEFT) self._app.balloon.bind_widget(btn, balloonmsg='Plot the ideal pattern.') frm.pack(side=LEFT, fill=Y) self.__paramlist = ScrolledList(self) self.__paramlist.list.config(height=4, width=10) self.__paramlist.pack(side=LEFT) self.name = 'Edit Ideal Pattern' self.optgrp = None
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=[])