예제 #1
0
 def __init__(self, parent, name):
     LabelFrame.__init__(self, parent, text=name)
     self.height = 100
     self.width = 100
     self.amount = IntVar()
     self.scheduled = IntVar()
     self.canvas = Canvas(self,
                          bg='#FFF8B8',
                          height=self.height,
                          width=self.width,
                          relief=SUNKEN)
     self.canvas.pack()
     self.img = Picture(self.canvas,
                        name,
                        self.height,
                        relief=None,
                        borderwidth=0,
                        highlightthickness=0)
     x = int((self.width - self.img.width) / 2)
     y = int((self.height - self.img.height) / 2)
     self.img.place(x=x, y=y)
     self.lblA = Label(self.canvas,
                       textvariable=self.amount,
                       bg='#FFF8B8',
                       font=("Verdana", 16))
     self.lblS = Label(self.canvas,
                       textvariable=self.scheduled,
                       bg='#FFF8B8',
                       font=("Verdana", 16))
     d = 3
     y = self.height - d
     self.lblA.place(x=d, y=y, anchor='sw')
     self.lblS.place(x=self.width - d, y=y, anchor='se')
예제 #2
0
 def __init__(self, parent, source):
     LabelFrame.__init__(self, parent, text="Tasklist")
     self.parent = parent
     self.getData = source
     self.text = Text(self)
     self.text.pack()
     self.parent.after(1000, self.update)
예제 #3
0
 def __init__(self, parent, source):
     LabelFrame.__init__(self, parent, text="Orders")
     self.parent = parent
     # self.frame=Frame(self,width=550,height=400)
     # self.frame.pack(expand=None, fill=Y)
     self.getData = source
     self.parent.after(1000, self.update)
     self.orders = {}
예제 #4
0
	def __init__(self,parent):
		LabelFrame.__init__(self,parent,text="Calculate",borderwidth=5)       
		 
		self.startCalculationB = Button(self,text="Start calculation",width=20)
		self.startCalculationB.grid(row=0,column=0,padx=10,pady=5)
		self.endCalculationB = Button(self,text="Cancel calculation",width=20)
		self.endCalculationB.grid(row=1,column=0,padx=10,pady=5)
		self.calculationPB = Progressbar(self, mode="indeterminate",length=128)
		self.calculationPB.grid(row=2,column=0,padx=10,pady=5)
 def __init__(self, parent, label_text, add_headers, params,
              category_type, *args, **kw):
     LabelFrame.__init__(self, parent, text=label_text, *args, **kw)
     self.parent = parent
     self.frame_with_boxes = None
     self.canvas = None
     self.options = dict()
     self.nb_entries = 0
     self.add_headers = add_headers
     self.category_objects = dict()
     self.params = params
     self.category_type = category_type
     self.create_widgets()
예제 #6
0
 def __init__(self, parent, label_text, add_headers, params, category_type,
              *args, **kw):
     LabelFrame.__init__(self, parent, text=label_text, *args, **kw)
     self.parent = parent
     self.frame_with_boxes = None
     self.canvas = None
     self.options = dict()
     self.nb_entries = 0
     self.add_headers = add_headers
     self.category_objects = dict()
     self.params = params
     self.category_type = category_type
     self.create_widgets()
예제 #7
0
    def __init__(self, parent):

        LabelFrame.__init__(self,
                            parent,
                            text="Results",
                            width=825,
                            height=485)

        # Terrible kludgy hack to force the app to stay the right size
        # Need to work out how to remove
        self.grid_propagate(False)

        self.resultsDict = None
        self.modelType = None
        self.currentSegment = 0

        # Stats frame

        self.statsFrame = StatsFrame(self, self.padX, self.padY)
        self.statsFrame.calculate_B.bind("<Button-1>", self._parametersChanged)
        self.statsFrame.reset_B.bind("<Button-1>", self._parametersReset)

        def onComboBoxSelect(e):
            self.currentSegment = e.widget.current()
            self._updateDisplay(True)

        self.statsFrame.expSeg_CB.bind("<<ComboboxSelected>>",
                                       onComboBoxSelect)

        # Error frame

        self.errorSurfaceFrame = ErrorSurfaceFrame(self)
        self.errorSurfaceFrame.errorSurfaceB.bind("<Button-1>",
                                                  self._displayErrorSurface)

        # Graph notebook

        self.errorSurfaceSeperator = Separator(self, orient=tkinter.HORIZONTAL)

        self.graphNotebook = ImprovedNotebook(self)

        self.modelGraphFrame = GraphFrame(self.graphNotebook, dim=2)
        self.modelGraphFrame.axes.set_ylabel(r'$thickness(m)$')

        self.regressionGraphFrame = GraphFrame(self.graphNotebook, dim=2)
        self.regressionGraphFrame.axes.set_ylabel(r'$\log{(thickness(m))}$')

        self.errorSurfaceGraphFrame = GraphFrame(self.graphNotebook, dim=3)
        self.errorSurfaceGraphFrame.axes.set_zlabel(r'$error$')

        self.graphNotebook.addFrame(self.modelGraphFrame, text="Model")
예제 #8
0
    def __init__(self, parent):
        LabelFrame.__init__(self, parent, text="Calculate", borderwidth=5)

        self.startCalculationB = Button(self,
                                        text="Start calculation",
                                        width=20)
        self.startCalculationB.grid(row=0, column=0, padx=10, pady=5)
        self.endCalculationB = Button(self,
                                      text="Cancel calculation",
                                      width=20)
        self.endCalculationB.grid(row=1, column=0, padx=10, pady=5)
        self.calculationPB = Progressbar(self,
                                         mode="indeterminate",
                                         length=128)
        self.calculationPB.grid(row=2, column=0, padx=10, pady=5)
예제 #9
0
    def __init__(self, parent, calculationTimeEstimationFunction):

        LabelFrame.__init__(self, parent, text="Isopachs", borderwidth=5)
        self.numberOfIsopachs = DEFAULT_NUMBER_OF_ISOPACHS
        self.calculationTimeEstimationFunction = calculationTimeEstimationFunction

        openButtonImage = tkinter.PhotoImage(file=IMAGE_DIR +
                                             "open_file-icon.gif")
        self.tickImage = tkinter.PhotoImage(file=IMAGE_DIR + "tick.gif")

        self.loadFromFileButton = Button(self, image=openButtonImage)
        self.loadFromFileButton.grid(row=0,
                                     column=0,
                                     padx=self.buttonPadding,
                                     pady=10)
        self.loadFromFileButton.bind("<Button-1>", self.loadFromFile)
        self.loadFromFileButton.image = openButtonImage

        self.addButton = Button(self,
                                text="Add isopach",
                                width=self.buttonWidth)
        self.addButton.grid(row=0, column=1, padx=self.buttonPadding, pady=10)
        self.addButton.bind("<Button-1>", self.addIsopach)

        self.removeButton = Button(self,
                                   text="Remove isopach",
                                   width=self.buttonWidth)
        self.removeButton.grid(row=0,
                               column=2,
                               padx=self.buttonPadding,
                               pady=10)
        self.removeButton.bind("<Button-1>", self.removeIsopach)

        self.scrollFrame = ScrollFrame(self)
        self.scrollFrame.grid(row=1, column=0, columnspan=3, sticky="NS")
        self.innerFrame = self.scrollFrame.innerFrame

        self.grid_rowconfigure(1, weight=1)

        self.rows = [self.createRow(i) for i in range(self.numberOfIsopachs)]

        thicknessM_L = Label(self.innerFrame, text="Thickness (m)")
        thicknessM_L.grid(column=1, row=1, padx=5, pady=5)
        sqrtAreaKM_L = Label(self.innerFrame, text="\u221AArea (km)")
        sqrtAreaKM_L.grid(column=2, row=1, padx=5, pady=5)
        include_L = Label(self.innerFrame, text="Use?")
        include_L.grid(column=3, row=1, padx=5, pady=5)
예제 #10
0
	def __init__(self,parent):

		LabelFrame.__init__(self, parent,text="Results", width=825, height=485)

		# Terrible kludgy hack to force the app to stay the right size
		# Need to work out how to remove
		self.grid_propagate(False)
		 

		self.resultsDict = None
		self.modelType = None
		self.currentSegment = 0

		# Stats frame
		
		self.statsFrame = StatsFrame(self, self.padX, self.padY)
		self.statsFrame.calculate_B.bind("<Button-1>", self._parametersChanged)
		self.statsFrame.reset_B.bind("<Button-1>", self._parametersReset)
		
		def onComboBoxSelect(e):
			self.currentSegment = e.widget.current()
			self._updateDisplay(True)
		self.statsFrame.expSeg_CB.bind("<<ComboboxSelected>>", onComboBoxSelect)
		
		# Error frame
		
		self.errorSurfaceFrame = ErrorSurfaceFrame(self)
		self.errorSurfaceFrame.errorSurfaceB.bind("<Button-1>", self._displayErrorSurface)

		# Graph notebook
		
		self.errorSurfaceSeperator = Separator(self,orient=tkinter.HORIZONTAL)

		self.graphNotebook = ImprovedNotebook(self)

		self.modelGraphFrame = GraphFrame(self.graphNotebook, dim=2)
		self.modelGraphFrame.axes.set_ylabel(r'$thickness(m)$')

		self.regressionGraphFrame = GraphFrame(self.graphNotebook, dim=2)
		self.regressionGraphFrame.axes.set_ylabel(r'$\ln{(thickness(m))}$')
		
		self.errorSurfaceGraphFrame = GraphFrame(self.graphNotebook, dim=3)
		self.errorSurfaceGraphFrame.axes.set_zlabel(r'$error$')
		
		self.graphNotebook.addFrame(self.modelGraphFrame, text="Model")
예제 #11
0
	def __init__(self,parent):
		LabelFrame.__init__(self, parent, borderwidth=0)
		
		entryWidth = 7
		xPad1 = 30
		xPad2 = 5
		
		self.errorXLowerLimitL = Label(self)
		self.errorXLowerLimitE = CustomEntry(self,width=entryWidth,justify="right")
		self.errorXLowerLimitL.grid(row=0,column=0,padx=(10,xPad2),pady=5,sticky="W")
		self.errorXLowerLimitE.grid(row=0,column=1,padx=(xPad2,xPad1),pady=5)
		
		self.errorXUpperLimitL = Label(self)
		self.errorXUpperLimitE = CustomEntry(self,width=entryWidth,justify="right")
		self.errorXUpperLimitL.grid(row=1,column=0,padx=(10,xPad2),pady=5,sticky="W")
		self.errorXUpperLimitE.grid(row=1,column=1,padx=(xPad2,xPad1),pady=5)
		
		self.errorYLowerLimitL = Label(self)
		self.errorYLowerLimitE = CustomEntry(self,width=entryWidth,justify="right")
		self.errorYLowerLimitL.grid(row=0,column=2,padx=(xPad1,xPad2),pady=5,sticky="W")
		self.errorYLowerLimitE.grid(row=0,column=3,padx=(xPad2,xPad1),pady=5)
		
		self.errorYUpperLimitL = Label(self)
		self.errorYUpperLimitE = CustomEntry(self,width=entryWidth,justify="right")
		self.errorYUpperLimitL.grid(row=1,column=2,padx=(xPad1,xPad2),pady=5,sticky="W")
		self.errorYUpperLimitE.grid(row=1,column=3,padx=(xPad2,xPad1),pady=5)
		
		self.errorResolutionL = Label(self,text="Resolution: ")
		self.errorResolutionE = CustomEntry(self,width=entryWidth,justify="right")
		self.errorResolutionE.insert(0,ERROR_SURFACE_DEFAULT_RESOLUTION)
		self.errorResolutionL.grid(row=0,column=4,padx=(xPad1,xPad2),pady=5,sticky="W")
		self.errorResolutionE.grid(row=0,column=5,padx=(xPad2,xPad1),pady=5,sticky="E")
		
		self.errorSurfaceB = Button(self,text=" Calculate error surface ")
		self.errorSurfaceB.grid(row=1,column=4,columnspan=2,padx=(xPad1,xPad1),sticky="EW")
		self.errorSurfaceB.configure(state=tkinter.ACTIVE)
예제 #12
0
	def __init__(self,parent):
		LabelFrame.__init__(self, parent, borderwidth=0)

		entryWidth = 7
		xPad1 = 30
		xPad2 = 5

		self.errorXLowerLimitL = Label(self)
		self.errorXLowerLimitE = CustomEntry(self,width=entryWidth,justify="right")
		self.errorXLowerLimitL.grid(row=0,column=0,padx=(10,xPad2),pady=5,sticky="W")
		self.errorXLowerLimitE.grid(row=0,column=1,padx=(xPad2,xPad1),pady=5)

		self.errorXUpperLimitL = Label(self)
		self.errorXUpperLimitE = CustomEntry(self,width=entryWidth,justify="right")
		self.errorXUpperLimitL.grid(row=1,column=0,padx=(10,xPad2),pady=5,sticky="W")
		self.errorXUpperLimitE.grid(row=1,column=1,padx=(xPad2,xPad1),pady=5)

		self.errorYLowerLimitL = Label(self)
		self.errorYLowerLimitE = CustomEntry(self,width=entryWidth,justify="right")
		self.errorYLowerLimitL.grid(row=0,column=2,padx=(xPad1,xPad2),pady=5,sticky="W")
		self.errorYLowerLimitE.grid(row=0,column=3,padx=(xPad2,xPad1),pady=5)

		self.errorYUpperLimitL = Label(self)
		self.errorYUpperLimitE = CustomEntry(self,width=entryWidth,justify="right")
		self.errorYUpperLimitL.grid(row=1,column=2,padx=(xPad1,xPad2),pady=5,sticky="W")
		self.errorYUpperLimitE.grid(row=1,column=3,padx=(xPad2,xPad1),pady=5)

		self.errorResolutionL = Label(self,text="Resolution: ")
		self.errorResolutionE = CustomEntry(self,width=entryWidth,justify="right")
		self.errorResolutionE.insert(0,ERROR_SURFACE_DEFAULT_RESOLUTION)
		self.errorResolutionL.grid(row=0,column=4,padx=(xPad1,xPad2),pady=5,sticky="W")
		self.errorResolutionE.grid(row=0,column=5,padx=(xPad2,xPad1),pady=5,sticky="E")

		self.errorSurfaceB = Button(self,text=" Calculate error surface ")
		self.errorSurfaceB.grid(row=1,column=4,columnspan=2,padx=(xPad1,xPad1),sticky="EW")
		self.errorSurfaceB.configure(state=tkinter.ACTIVE)
예제 #13
0
    def __init__(self,parent,calculationTimeEstimationFunction):
        
        LabelFrame.__init__(self,parent,text="Isopachs",borderwidth=5)
        self.numberOfIsopachs = DEFAULT_NUMBER_OF_ISOPACHS
        self.calculationTimeEstimationFunction = calculationTimeEstimationFunction
        
        openButtonImage = tkinter.PhotoImage(file=IMAGE_DIR + "open_file-icon.gif")
        self.tickImage = tkinter.PhotoImage(file=IMAGE_DIR + "tick.gif")
        
        self.loadFromFileButton = Button(self,image=openButtonImage)
        self.loadFromFileButton.grid(row=0,column=0,padx=self.buttonPadding,pady=10)
        self.loadFromFileButton.bind("<Button-1>",self.loadFromFile)
        self.loadFromFileButton.image = openButtonImage
        
        self.addButton = Button(self,text="Add isopach",width=self.buttonWidth)
        self.addButton.grid(row=0,column=1,padx=self.buttonPadding,pady=10)
        self.addButton.bind("<Button-1>",self.addIsopach)

        self.removeButton = Button(self,text="Remove isopach",width=self.buttonWidth)
        self.removeButton.grid(row=0,column=2,padx=self.buttonPadding,pady=10)
        self.removeButton.bind("<Button-1>",self.removeIsopach)
        
        self.scrollFrame = ScrollFrame(self)
        self.scrollFrame.grid(row=1,column=0,columnspan=3, sticky="NS")
        self.innerFrame = self.scrollFrame.innerFrame

        self.grid_rowconfigure(1,weight=1)

        self.rows = [self.createRow(i) for i in range(self.numberOfIsopachs)]
        
        thicknessM_L = Label(self.innerFrame, text="Thickness (m)")
        thicknessM_L.grid(column=1, row=1, padx=5, pady=5)
        sqrtAreaKM_L = Label(self.innerFrame, text="\u221AArea (km)")
        sqrtAreaKM_L.grid(column=2, row=1, padx=5, pady=5)
        include_L = Label(self.innerFrame, text="Use?")
        include_L.grid(column=3, row=1, padx=5, pady=5)
예제 #14
0
	def __init__(self,parent, padX, padY):
		
		LabelFrame.__init__(self,parent,borderwidth=0)
		
		# Total volume
		self.totalEstimatedVolume_L = Label(self,text="Estimated total volume (km\u00B3): ")
		self.totalEstimatedVolume_E = CustomEntry(self,width=10,justify="right")
		self.totalEstimatedVolume_E.setUserEditable(False)
		self.totalEstimatedVolume_E.grid(row=0,column=1,padx=10,pady=padY,sticky="E")
		self.totalEstimatedVolume_L.grid(row=0,column=0,sticky="W",padx=10)
		
		# Relative squared error
		self.relativeSquaredError_L = Label(self,text="Mean relative squared error: ")
		self.relativeSquaredError_L.grid(row=1,column=0,sticky="W",padx=10,pady=padY)
		self.relativeSquaredError_E = CustomEntry(self,width=10,justify="right")
		self.relativeSquaredError_E.grid(row=1,column=1,padx=10,sticky="E")
		self.relativeSquaredError_E.setUserEditable(False)
		
		# Equation
		self.equation_L = Label(self,text="Equation: ")
		self.equation_E = CustomEntry(self,width=10,justify="right")
		self.equation_E.setUserEditable(False)

		# General
		self.parameters_L = Label(self,text="Parameters:")
		self.calculate_B = Button(self,text="Recalculate",width=12)
		self.reset_B = Button(self,text="Reset",width=8)



		#########
		## Exp ##
		#########

		# Segment combobox
		self.expSeg_CB = Combobox(self,state="readonly",width=10)

		# Segment volume
		self.expSegVolume_L = Label(self,text="Segment volume (km\u00B3): ")
		self.expSegVolume_E = CustomEntry(self, width=10, justify="right")
		self.expSegVolume_E.setUserEditable(False)
		
		# Segment start
		self.expSegStartLimit_L = Label(self,text="Start of segment: ")
		self.expSegStartLimit_E = NumericEntry(self, width=10, justify="right")
		self.expSegStartLimit_E.setSF(NUMBER_OF_SF)

		# Segment end
		self.expSegEndLimit_L = Label(self,text="End of segment: ")
		self.expSegEndLimit_E = NumericEntry(self, width=10, justify="right")
		self.expSegEndLimit_E.setSF(NUMBER_OF_SF)

		# Segment coefficient
		self.expSegCoefficent_L = Label(self,text="Segment coefficient, c: ")
		self.expSegCoefficent_E = NumericEntry(self, width=10, justify="right")
		self.expSegCoefficent_E.setSF(NUMBER_OF_SF)

		# Segment exponent
		self.expSegExponent_L = Label(self,text="Segment exponent, m: ")
		self.expSegExponent_E = NumericEntry(self, width=10, justify="right")
		self.expSegExponent_E.setSF(NUMBER_OF_SF)
		

		#########
		## Pow ##
		#########

		# Coefficient
		self.powCoefficient_L = Label(self,text="Coefficient, c: ")
		self.powCoefficient_E = NumericEntry(self,width=10, justify="right")
		self.powCoefficient_E.setSF(NUMBER_OF_SF)

		# Exponent
		self.powExponent_L = Label(self,text="Exponent, m: ")
		self.powExponent_E = NumericEntry(self,width=10, justify="right")
		self.powExponent_E.setSF(NUMBER_OF_SF)

		# Proximal limit
		self.powProximalLimit_L = Label(self,text="Proximal limit: ")
		self.powProximalLimit_E = NumericEntry(self,width=10, justify="right")
		self.powProximalLimit_E.setSF(NUMBER_OF_SF)

		# Distal limit
		self.powDistalLimit_L = Label(self,text="Distal limit: ")
		self.powDistalLimit_E = NumericEntry(self,width=10, justify="right")
		self.powDistalLimit_E.setSF(NUMBER_OF_SF)

		# Suggested proximal limit
		self.powSuggestedProximalLimit_L = Label(self,text="Suggested proximal limit: ")
		self.powSuggestedProximalLimit_E = CustomEntry(self,width=10, justify="right")
		self.powSuggestedProximalLimit_E.setUserEditable(False)

		

		#########
		## Wei ##
		#########

		# lambda
		self.weiLambdaL = Label(self,text="Estimated \u03BB: ")
		self.weiLambdaE = NumericEntry(self,width=10, justify="right")
		self.weiLambdaE.setSF(NUMBER_OF_SF)

		# k
		self.weiKL = Label(self,text="Estimated k: ")
		self.weiKE = NumericEntry(self,width=10, justify="right")
		self.weiKE.setSF(NUMBER_OF_SF)

		# theta
		self.weiThetaL = Label(self,text="Estimated \u03B8: ")
		self.weiThetaE = NumericEntry(self,width=10, justify="right")
		self.weiThetaE.setSF(NUMBER_OF_SF)


		self.components = {
			Model.EXP : [
				self.expSeg_CB,
				self.expSegVolume_L, self.expSegVolume_E, 
				self.expSegStartLimit_L, self.expSegStartLimit_E,
				self.expSegEndLimit_L, self.expSegEndLimit_E,
				self.expSegCoefficent_L, self.expSegCoefficent_E,
				self.expSegExponent_L, self.expSegExponent_E
			],

			Model.POW : [
				self.powCoefficient_L, self.powCoefficient_E,
				self.powExponent_L, self.powExponent_E,
				self.powProximalLimit_L, self.powProximalLimit_E,
				self.powDistalLimit_L, self.powDistalLimit_E,
				self.powSuggestedProximalLimit_L, self.powSuggestedProximalLimit_E
			],

			Model.WEI : [
				self.weiLambdaL, self.weiLambdaE,
				self.weiKL, self.weiKE,
				self.weiThetaL, self.weiThetaE,
			],

		}
예제 #15
0
	def __init__(self,parent, padX, padY):

		LabelFrame.__init__(self,parent,borderwidth=0)

		# Total volume
		self.totalEstimatedVolume_L = Label(self,text="Estimated total volume (km\u00B3): ")
		self.totalEstimatedVolume_E = CustomEntry(self,width=10,justify="right")
		self.totalEstimatedVolume_E.setUserEditable(False)
		self.totalEstimatedVolume_E.grid(row=0,column=1,padx=10,pady=padY,sticky="E")
		self.totalEstimatedVolume_L.grid(row=0,column=0,sticky="W",padx=10)

		# Relative squared error
		self.relativeSquaredError_L = Label(self,text="Mean relative squared error: ")
		self.relativeSquaredError_L.grid(row=1,column=0,sticky="W",padx=10,pady=padY)
		self.relativeSquaredError_E = CustomEntry(self,width=10,justify="right")
		self.relativeSquaredError_E.grid(row=1,column=1,padx=10,sticky="E")
		self.relativeSquaredError_E.setUserEditable(False)

		# Equation
		self.equation_L = Label(self,text="Equation: ")
		self.equation_E = CustomEntry(self,width=10,justify="right")
		self.equation_E.setUserEditable(False)

		# General
		self.parameters_L = Label(self,text="Parameters:")
		self.calculate_B = Button(self,text="Recalculate",width=12)
		self.reset_B = Button(self,text="Reset",width=8)



		#########
		## Exp ##
		#########

		# Segment combobox
		self.expSeg_CB = Combobox(self,state="readonly",width=10)

		# Segment volume
		self.expSegVolume_L = Label(self,text="Segment volume (km\u00B3): ")
		self.expSegVolume_E = CustomEntry(self, width=10, justify="right")
		self.expSegVolume_E.setUserEditable(False)

		# Segment start
		self.expSegStartLimit_L = Label(self,text="Start of segment: ")
		self.expSegStartLimit_E = NumericEntry(self, width=10, justify="right")
		self.expSegStartLimit_E.setSF(NUMBER_OF_SF)

		# Segment end
		self.expSegEndLimit_L = Label(self,text="End of segment: ")
		self.expSegEndLimit_E = NumericEntry(self, width=10, justify="right")
		self.expSegEndLimit_E.setSF(NUMBER_OF_SF)

		# Segment coefficient
		self.expSegCoefficent_L = Label(self,text="Segment coefficient, c: ")
		self.expSegCoefficent_E = NumericEntry(self, width=10, justify="right")
		self.expSegCoefficent_E.setSF(NUMBER_OF_SF)

		# Segment exponent
		self.expSegExponent_L = Label(self,text="Segment exponent, m: ")
		self.expSegExponent_E = NumericEntry(self, width=10, justify="right")
		self.expSegExponent_E.setSF(NUMBER_OF_SF)


		#########
		## Pow ##
		#########

		# Coefficient
		self.powCoefficient_L = Label(self,text="Coefficient, c: ")
		self.powCoefficient_E = NumericEntry(self,width=10, justify="right")
		self.powCoefficient_E.setSF(NUMBER_OF_SF)

		# Exponent
		self.powExponent_L = Label(self,text="Exponent, m: ")
		self.powExponent_E = NumericEntry(self,width=10, justify="right")
		self.powExponent_E.setSF(NUMBER_OF_SF)

		# Proximal limit
		self.powProximalLimit_L = Label(self,text="Proximal limit: ")
		self.powProximalLimit_E = NumericEntry(self,width=10, justify="right")
		self.powProximalLimit_E.setSF(NUMBER_OF_SF)

		# Distal limit
		self.powDistalLimit_L = Label(self,text="Distal limit: ")
		self.powDistalLimit_E = NumericEntry(self,width=10, justify="right")
		self.powDistalLimit_E.setSF(NUMBER_OF_SF)

		# Suggested proximal limit
		self.powSuggestedProximalLimit_L = Label(self,text="Suggested proximal limit: ")
		self.powSuggestedProximalLimit_E = CustomEntry(self,width=10, justify="right")
		self.powSuggestedProximalLimit_E.setUserEditable(False)



		#########
		## Wei ##
		#########

		# lambda
		self.weiLambdaL = Label(self,text="Estimated \u03BB: ")
		self.weiLambdaE = NumericEntry(self,width=10, justify="right")
		self.weiLambdaE.setSF(NUMBER_OF_SF)

		# k
		self.weiKL = Label(self,text="Estimated k: ")
		self.weiKE = NumericEntry(self,width=10, justify="right")
		self.weiKE.setSF(NUMBER_OF_SF)

		# theta
		self.weiThetaL = Label(self,text="Estimated \u03B8: ")
		self.weiThetaE = NumericEntry(self,width=10, justify="right")
		self.weiThetaE.setSF(NUMBER_OF_SF)


		self.components = {
			Model.EXP : [
				self.expSeg_CB,
				self.expSegVolume_L, self.expSegVolume_E,
				self.expSegStartLimit_L, self.expSegStartLimit_E,
				self.expSegEndLimit_L, self.expSegEndLimit_E,
				self.expSegCoefficent_L, self.expSegCoefficent_E,
				self.expSegExponent_L, self.expSegExponent_E
			],

			Model.POW : [
				self.powCoefficient_L, self.powCoefficient_E,
				self.powExponent_L, self.powExponent_E,
				self.powProximalLimit_L, self.powProximalLimit_E,
				self.powDistalLimit_L, self.powDistalLimit_E,
				self.powSuggestedProximalLimit_L, self.powSuggestedProximalLimit_E
			],

			Model.WEI : [
				self.weiLambdaL, self.weiLambdaE,
				self.weiKL, self.weiKE,
				self.weiThetaL, self.weiThetaE,
			],

		}
예제 #16
0
	def __init__(self,parent):        
		LabelFrame.__init__(self,parent,text="Model",borderwidth=5)
		
		self.selection = tkinter.IntVar()
		
		self.exponential = Radiobutton(self,text="Exponential model",variable=self.selection,value=Model.EXP.value,command=self.changeSelection)
		self.powerlaw = Radiobutton(self,text="Power law model",variable=self.selection,value=Model.POW.value,command=self.changeSelection)
		self.weibull = Radiobutton(self,text="Weibull model",variable=self.selection,value=Model.WEI.value,command=self.changeSelection)

		self.exponential.grid(row=0,column=0,sticky="W",padx=10,pady=(self.topPadding,5))
		self.powerlaw.grid(row=1,column=0,sticky="W",padx=10,pady=5)
		self.weibull.grid(row=2,column=0,sticky="W",padx=10,pady=(5,0))
		
		seperator = Separator(self, orient=tkinter.VERTICAL)
		seperator.grid(row=0, column=1, rowspan=3, sticky="NS", padx=(20,10), pady=(self.topPadding,0))
		
		## Exponential setup

		self.expNumberOfSegments_L = Label(self,text="Number of segments: ")
		self.expNumberOfSegments_E = Entry(self,width=5, justify="right")

		self.expNumberOfSegments_E.insert(0, settings.EXP_DEFAULT_NUMBER_OF_SEGMENTS)

		self.expWidgets = [self.expNumberOfSegments_L,self.expNumberOfSegments_E]
		
		## Power law setup

		self.powProximalLimit_L = Label(self,text="Proximal limit of integration: ")
		self.powProximalLimit_E = Entry(self,width=5, justify="right")
		self.powDistalLimit_L = Label(self,text="Distal limit of integration: ")
		self.powDistalLimit_E = Entry(self,width=5, justify="right")

		self.powProximalLimit_E.insert(0, settings.POW_DEFAULT_PROXIMAL_LIMIT)
		self.powDistalLimit_E.insert(0, settings.POW_DEFAULT_DISTAL_LIMIT)

		self.powWidgets = [self.powProximalLimit_L,self.powProximalLimit_E,
						   self.powDistalLimit_L,self.powDistalLimit_E]
		
		## Weibull setup

		self.weiNumberOfRuns_L = Label(self,text="Number of runs: ")
		self.weiNumberOfRuns_E = Entry(self,width=5, justify="right")
		self.weiIterationsPerRun_L = Label(self,text="Iterations per run: ")
		self.weiIterationsPerRun_E = Entry(self,width=5, justify="right")

		self.weiEstimatedTime_L = Label(self,text="Estimated time (s): ")
		self.weiEstimatedTime_E = CustomEntry(self,width=5, justify="right")
		self.weiEstimatedTime_E.setUserEditable(False)

		self.weiLambdaLowerBoundL = Label(self,text="\u03BB lower bound:")
		self.weiLambdaUpperBoundL = Label(self,text="\u03BB upper bound:")
		self.weiLambdaLowerBoundE = Entry(self,width=5, justify="right")
		self.weiLambdaUpperBoundE = Entry(self,width=5, justify="right")

		self.weiKLowerBoundL = Label(self,text="k lower bound:")
		self.weiKUpperBoundL = Label(self,text="k upper bound:")
		self.weiKLowerBoundE = Entry(self,width=5, justify="right")
		self.weiKUpperBoundE = Entry(self,width=5, justify="right")

		self.weiNumberOfRuns_E.insert(0, settings.WEI_DEFAULT_NUMBER_OF_RUNS)
		self.weiIterationsPerRun_E.insert(0, settings.WEI_DEFAULT_ITERATIONS_PER_RUN)
		self.weiLambdaLowerBoundE.insert(0, settings.WEI_DEFAULT_LAMBDA_LOWER_BOUND)
		self.weiLambdaUpperBoundE.insert(0, settings.WEI_DEFAULT_LAMBDA_UPPER_BOUND)
		self.weiKLowerBoundE.insert(0, settings.WEI_DEFAULT_K_LOWER_BOUND)
		self.weiKUpperBoundE.insert(0, settings.WEI_DEFAULT_K_UPPER_BOUND)

		
		self.weiWidgets = [self.weiNumberOfRuns_L,self.weiNumberOfRuns_E,
						   self.weiIterationsPerRun_L,self.weiIterationsPerRun_E,
						   self.weiEstimatedTime_L,self.weiEstimatedTime_E,
						   self.weiLambdaLowerBoundL,self.weiLambdaUpperBoundL,self.weiLambdaLowerBoundE,self.weiLambdaUpperBoundE,
						   self.weiKLowerBoundL,self.weiKUpperBoundL,self.weiKLowerBoundE,self.weiKUpperBoundE]
		
		## General

		self.currentWidgets = []
		self.selection.set(Model.EXP.value)
		self.changeSelection()
예제 #17
0
 def __init__(self, parent, source):
     LabelFrame.__init__(self, parent, text="Stations")
     self.parent = parent
     self.getData = source
     self.rows = []
     self.parent.after(1000, self.update)
예제 #18
0
 def __init__(self, parent):
     LabelFrame.__init__(self, parent, text="Output")
     self.show = IntVar(value=False)
     self.cb = Checkbutton(self, text="show output", variable=self.show)
     self.cb.pack(side="left")
예제 #19
0
    def __init__(self, parent):
        LabelFrame.__init__(self, parent, text="Model", borderwidth=5)

        self.selection = tkinter.IntVar()

        self.exponential = Radiobutton(self,
                                       text="Exponential model",
                                       variable=self.selection,
                                       value=Model.EXP.value,
                                       command=self.changeSelection)
        self.powerlaw = Radiobutton(self,
                                    text="Power law model",
                                    variable=self.selection,
                                    value=Model.POW.value,
                                    command=self.changeSelection)
        self.weibull = Radiobutton(self,
                                   text="Weibull model",
                                   variable=self.selection,
                                   value=Model.WEI.value,
                                   command=self.changeSelection)

        self.exponential.grid(row=0,
                              column=0,
                              sticky="W",
                              padx=10,
                              pady=(self.topPadding, 5))
        self.powerlaw.grid(row=1, column=0, sticky="W", padx=10, pady=5)
        self.weibull.grid(row=2, column=0, sticky="W", padx=10, pady=(5, 0))

        seperator = Separator(self, orient=tkinter.VERTICAL)
        seperator.grid(row=0,
                       column=1,
                       rowspan=3,
                       sticky="NS",
                       padx=(20, 10),
                       pady=(self.topPadding, 0))

        ## Exponential setup

        self.expNumberOfSegments_L = Label(self, text="Number of segments: ")
        self.expNumberOfSegments_E = Entry(self, width=5, justify="right")

        self.expNumberOfSegments_E.insert(
            0, settings.EXP_DEFAULT_NUMBER_OF_SEGMENTS)

        self.expWidgets = [
            self.expNumberOfSegments_L, self.expNumberOfSegments_E
        ]

        ## Power law setup

        self.powProximalLimit_L = Label(self,
                                        text="Proximal limit of integration: ")
        self.powProximalLimit_E = Entry(self, width=5, justify="right")
        self.powDistalLimit_L = Label(self,
                                      text="Distal limit of integration: ")
        self.powDistalLimit_E = Entry(self, width=5, justify="right")

        self.powProximalLimit_E.insert(0, settings.POW_DEFAULT_PROXIMAL_LIMIT)
        self.powDistalLimit_E.insert(0, settings.POW_DEFAULT_DISTAL_LIMIT)

        self.powWidgets = [
            self.powProximalLimit_L, self.powProximalLimit_E,
            self.powDistalLimit_L, self.powDistalLimit_E
        ]

        ## Weibull setup

        self.weiNumberOfRuns_L = Label(self, text="Number of runs: ")
        self.weiNumberOfRuns_E = Entry(self, width=5, justify="right")
        self.weiIterationsPerRun_L = Label(self, text="Iterations per run: ")
        self.weiIterationsPerRun_E = Entry(self, width=5, justify="right")

        self.weiEstimatedTime_L = Label(self, text="Estimated time (s): ")
        self.weiEstimatedTime_E = CustomEntry(self, width=5, justify="right")
        self.weiEstimatedTime_E.setUserEditable(False)

        self.weiLambdaLowerBoundL = Label(self, text="\u03BB lower bound:")
        self.weiLambdaUpperBoundL = Label(self, text="\u03BB upper bound:")
        self.weiLambdaLowerBoundE = Entry(self, width=5, justify="right")
        self.weiLambdaUpperBoundE = Entry(self, width=5, justify="right")

        self.weiKLowerBoundL = Label(self, text="k lower bound:")
        self.weiKUpperBoundL = Label(self, text="k upper bound:")
        self.weiKLowerBoundE = Entry(self, width=5, justify="right")
        self.weiKUpperBoundE = Entry(self, width=5, justify="right")

        self.weiNumberOfRuns_E.insert(0, settings.WEI_DEFAULT_NUMBER_OF_RUNS)
        self.weiIterationsPerRun_E.insert(
            0, settings.WEI_DEFAULT_ITERATIONS_PER_RUN)
        self.weiLambdaLowerBoundE.insert(
            0, settings.WEI_DEFAULT_LAMBDA_LOWER_BOUND)
        self.weiLambdaUpperBoundE.insert(
            0, settings.WEI_DEFAULT_LAMBDA_UPPER_BOUND)
        self.weiKLowerBoundE.insert(0, settings.WEI_DEFAULT_K_LOWER_BOUND)
        self.weiKUpperBoundE.insert(0, settings.WEI_DEFAULT_K_UPPER_BOUND)

        self.weiWidgets = [
            self.weiNumberOfRuns_L, self.weiNumberOfRuns_E,
            self.weiIterationsPerRun_L, self.weiIterationsPerRun_E,
            self.weiEstimatedTime_L, self.weiEstimatedTime_E,
            self.weiLambdaLowerBoundL, self.weiLambdaUpperBoundL,
            self.weiLambdaLowerBoundE, self.weiLambdaUpperBoundE,
            self.weiKLowerBoundL, self.weiKUpperBoundL, self.weiKLowerBoundE,
            self.weiKUpperBoundE
        ]

        ## General

        self.currentWidgets = []
        self.selection.set(Model.EXP.value)
        self.changeSelection()