Changeset 5370 for trunk/GSASIIctrlGUI.py
- Timestamp:
- Nov 12, 2022 4:36:04 PM (7 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIctrlGUI.py
r5368 r5370 728 728 self.Refresh() 729 729 730 def _GetNumValue(self): 731 'Get and where needed convert string from GetValue into int or float' 732 try: 733 val = self.GetValue() 734 if self.type is int: 735 val = int(val) 736 elif self.type is float: 737 val = float(val) 738 except: 739 if self.CIFinput and (val == '?' or val == '.'): 740 pass 741 else: 742 self.invalid = True 743 return val 744 730 745 def ShowStringValidity(self,previousInvalid=True): 731 746 '''Check if input is valid. Anytime the input is … … 801 816 self._setValue(self.result[self.key]) 802 817 elif self.result is not None: # show formatted result, as Bob wants 803 self.result[self.key] = self. GetValue()818 self.result[self.key] = self._GetNumValue() 804 819 if not self.invalid: # don't update an invalid expression 805 820 self._setValue(self.result[self.key]) … … 8371 8386 return None 8372 8387 8388 def makeContourSliders(G2frame,Ymax,PlotPatterns,newPlot,plottype): 8389 '''Create a non-modal dialog for sliders to set contour plot 8390 intensity thresholds. 8391 ''' 8392 def updatePlot(): 8393 'updates plot after a change in values' 8394 wx.CallAfter(PlotPatterns,G2frame,newPlot=newPlot,plotType=plottype) 8395 def OnSlider(event): 8396 'respond when min or max slider is moved' 8397 obj = event.GetEventObject() 8398 val = obj.GetValue()/100. 8399 if obj.mode == 'max': 8400 G2frame.Cmax = val 8401 else: 8402 G2frame.Cmin = val 8403 obj.txt.SetValue(int(Ymax*val)) 8404 updatePlot() 8405 def OnNewVal(*args,**kwargs): 8406 'respond when a value is placed in the min or max text box' 8407 obj = kwargs['tc'] 8408 if obj.mode == 'max': 8409 val = Range[1] 8410 G2frame.Cmax = val/Ymax 8411 else: 8412 val = Range[0] 8413 G2frame.Cmin = val/Ymax 8414 obj.slider.SetValue(int((100*val/Ymax) + 0.5)) 8415 updatePlot() 8416 # makeContourSliders starts here 8417 Range = [Ymax*G2frame.Cmin,Ymax*G2frame.Cmax] 8418 dlg = wx.Dialog(G2frame.plotFrame,style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER) 8419 vbox = wx.BoxSizer(wx.VERTICAL) 8420 vbox.Add((-1,5)) 8421 hbox = wx.BoxSizer(wx.HORIZONTAL) 8422 hbox.Add((-1,-1),1,wx.EXPAND,1) 8423 hbox.Add(wx.StaticText( 8424 dlg,wx.ID_ANY,'Set Contour Intensity Limits'),1,wx.ALL) 8425 hbox.Add((-1,-1),1,wx.EXPAND,1) 8426 vbox.Add(hbox) 8427 vbox.Add((-1,10)) 8428 dlg.slideSizer = wx.FlexGridSizer(2,3,5,5) 8429 dlg.slideSizer.AddGrowableCol(2) 8430 8431 dlg.slideSizer.Add(wx.StaticText(parent=dlg,label=' Min intensity'),0,WACV) 8432 minSel = wx.Slider(parent=dlg,style=wx.SL_HORIZONTAL, 8433 value=int(100*G2frame.Cmin+0.5)) 8434 minSel.Bind(wx.EVT_SLIDER, OnSlider) 8435 minVal = ValidatedTxtCtrl(dlg,Range,0,xmin=0, 8436 xmax=Ymax-1, OnLeave=OnNewVal) 8437 minVal.slider = minSel 8438 minVal.mode = 'min' 8439 minSel.txt = minVal 8440 minSel.mode = 'min' 8441 dlg.slideSizer.Add(minVal,0,WACV) 8442 dlg.slideSizer.Add(minSel,0,wx.EXPAND|wx.ALL,3) 8443 8444 dlg.slideSizer.Add(wx.StaticText(parent=dlg,label=' Max intensity'),0,WACV) 8445 maxSel = wx.Slider(parent=dlg,style=wx.SL_HORIZONTAL, 8446 value=int(100*G2frame.Cmax+0.5)) 8447 maxSel.Bind(wx.EVT_SLIDER, OnSlider) 8448 maxVal = ValidatedTxtCtrl(dlg,Range,1,xmin=1, 8449 xmax=Ymax, OnLeave=OnNewVal) 8450 maxVal.slider = maxSel 8451 maxVal.mode = 'max' 8452 maxSel.txt = maxVal 8453 maxSel.mode = 'max' 8454 dlg.slideSizer.Add(maxVal,0,WACV) 8455 dlg.slideSizer.Add(maxSel,0,wx.EXPAND|wx.ALL,3) 8456 8457 vbox.Add(dlg.slideSizer,0,wx.EXPAND,0) 8458 vbox.Add((-1,15)) 8459 8460 hbox = wx.BoxSizer(wx.HORIZONTAL) 8461 hbox.Add((-1,-1),1,wx.EXPAND,1) 8462 btn = wx.Button(dlg, wx.ID_CLOSE) 8463 hbox.Add(btn,0,wx.ALL,0) 8464 btn.Bind(wx.EVT_BUTTON,lambda x: dlg.Destroy()) 8465 hbox.Add((-1,-1),1,wx.EXPAND,1) 8466 vbox.Add(hbox,0,wx.EXPAND,0) 8467 vbox.Add((-1,5)) 8468 8469 dlg.SetSizer(vbox) 8470 vbox.Fit(dlg) 8471 wx.CallLater(100,minVal.SetValue,Range[0]) 8472 dlg.Show() 8473 8373 8474 if __name__ == '__main__': 8374 8475 app = wx.App()
Note: See TracChangeset
for help on using the changeset viewer.