Ignore:
Timestamp:
Jul 11, 2017 4:29:11 PM (4 years ago)
Author:
vondreele
Message:

set up a local version of basinhopping.py in MCSA routine
implement frame position saving - NB: doesn't check if frame outside screen!
fix display of image controls after calibrate/recalibrate, etc.
occupancy --> site fraction in Afrac display
replace a bunch of TextCtrls? with ValidatedTxtCtrls? in phaseGUI

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branch/2frame/GSASIIphsGUI.py

    r2917 r2927  
    17311731                text[3] = ' The magnetic lattice point group is '+SGData['MagPtGp']
    17321732                SGMagSpinBox(General,msg,text,table,OprNames,SpnFlp).Show()
    1733                
    1734             def OnDminVal(event):
    1735                 event.Skip()
    1736                 try:
    1737                     val = float(dminVal.GetValue())
    1738                     if val > 0.7:
    1739                         generalData['MagDmin'] = val
    1740                 except ValueError:
    1741                     pass
    1742                 dminVal.SetValue("%.4f"%(generalData['MagDmin']))
    1743                
     1733                               
    17441734            SGData = generalData['SGData']           
    17451735            Indx = {}
     
    17721762            dminSizer = wx.BoxSizer(wx.HORIZONTAL)
    17731763            dminSizer.Add(wx.StaticText(General,label=' Magnetic reflection d-min: '),0,WACV)
    1774 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    1775             dminVal = wx.TextCtrl(General,value='%.4f'%(generalData['MagDmin']),style=wx.TE_PROCESS_ENTER)
    1776             dminVal.Bind(wx.EVT_TEXT_ENTER,OnDminVal)       
    1777             dminVal.Bind(wx.EVT_KILL_FOCUS,OnDminVal)
     1764            dminVal = G2G.ValidatedTxtCtrl(General,generalData,'MagDmin',nDig=(10,4),min=0.7)
    17781765            dminSizer.Add(dminVal,0,WACV)
    17791766            magSizer.Add(dminSizer,0,WACV)
     
    18241811                    wx.MessageBox(Text,caption=msg,style=Style)
    18251812                wx.CallAfter(UpdateGeneral)               
    1826            
    1827             def OnVec(event):
    1828                 event.Skip()
    1829                 Obj = event.GetEventObject()
    1830                 ind = Indx[Obj.GetId()]
    1831                 val = Obj.GetValue()
    1832                 try:
    1833                     val = min(2.0,max(-1.0,float(val)))
    1834                 except ValueError:
    1835                     val = generalData['SuperVec'][0][ind]
    1836                 generalData['SuperVec'][0][ind] = val
    1837                 Obj.SetValue('%.4f'%(generalData['SuperVec'][0][ind]))
    1838                
     1813                           
    18391814            def OnVecRef(event):
    18401815                generalData['SuperVec'][1] = Ref.GetValue()
     
    18711846            for i,[val,show] in enumerate(zip(generalData['SuperVec'][0],ifShow)):
    18721847                if show:
    1873 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    1874                     modVal = wx.TextCtrl(General,value=('%.4f'%(val)),
    1875                         size=wx.Size(50,20),style=wx.TE_PROCESS_ENTER)
    1876                     modVal.Bind(wx.EVT_TEXT_ENTER,OnVec)       
    1877                     modVal.Bind(wx.EVT_KILL_FOCUS,OnVec)
     1848                    modVal = G2G.ValidatedTxtCtrl(General,generalData['SuperVec'][0],i,nDig=(10,4),min=-1.,max=2.)
    18781849                    vecSizer.Add(modVal,0,WACV)
    18791850                    Indx[modVal.GetId()] = i
     
    19151886                wx.CallAfter(UpdateGeneral,General.GetScrollPos(wx.VERTICAL))               
    19161887               
    1917             def OnResVal(event):
    1918                 event.Skip()
    1919                 try:
    1920                     res = float(mapRes.GetValue())
    1921                     if 0.25 <= res <= 20.:
    1922                         Map['Resolution'] = res
    1923                 except ValueError:
    1924                     pass
    1925                 mapRes.SetValue("%.2f"%(Map['Resolution']))          #reset in case of error
    1926            
    19271888            def OnCutOff(event):
    19281889                event.Skip()
     
    19611922            line2Sizer = wx.BoxSizer(wx.HORIZONTAL)
    19621923            line2Sizer.Add(wx.StaticText(General,label=' Resolution: '),0,WACV)
    1963 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    1964             mapRes =  wx.TextCtrl(General,value='%.2f'%(Map['Resolution']),style=wx.TE_PROCESS_ENTER)
    1965             mapRes.Bind(wx.EVT_TEXT_ENTER,OnResVal)       
    1966             mapRes.Bind(wx.EVT_KILL_FOCUS,OnResVal)
     1924            mapRes = G2G.ValidatedTxtCtrl(General,Map,'Resolution',nDig=(10,2),min=0.25,max=20.)
    19671925            line2Sizer.Add(mapRes,0,WACV)
    19681926            line2Sizer.Add(wx.StaticText(General,label=' Peak cutoff %: '),0,WACV)
     
    20001958                    normElem.SetLabel(Flip['Norm element'])
    20011959                PE.Destroy()               
    2002                
    2003             def OnResVal(event):
    2004                 event.Skip()
    2005                 try:
    2006                     res = float(flipRes.GetValue())
    2007                     if 0.25 <= res <= 20.:
    2008                         Flip['Resolution'] = res
    2009                 except ValueError:
    2010                     pass
    2011                 flipRes.SetValue("%.2f"%(Flip['Resolution']))          #reset in case of error
    2012            
    2013             def OnkFactor(event):
    2014                 event.Skip()
    2015                 try:
    2016                     res = float(kFactor.GetValue())
    2017                     if 0.1 <= res <= 1.2:
    2018                         Flip['k-factor'] = res
    2019                 except ValueError:
    2020                     pass
    2021                 kFactor.SetValue("%.3f"%(Flip['k-factor']))          #reset in case of error
    2022            
    2023             def OnkMax(event):
    2024                 event.Skip()
    2025                 try:
    2026                     res = float(kMax.GetValue())
    2027                     if res >= 10.:
    2028                         Flip['k-Max'] = res
    2029                 except ValueError:
    2030                     pass
    2031                 kMax.SetValue("%.1f"%(Flip['k-Max']))          #reset in case of error
    2032                
     1960                                       
    20331961            def OnTestHKL(event):
    20341962                event.Skip()
     
    20621990            line2Sizer = wx.BoxSizer(wx.HORIZONTAL)
    20631991            line2Sizer.Add(wx.StaticText(General,label=' Resolution: '),0,WACV)
    2064 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    2065             flipRes =  wx.TextCtrl(General,value='%.2f'%(Flip['Resolution']),style=wx.TE_PROCESS_ENTER)
    2066             flipRes.Bind(wx.EVT_TEXT_ENTER,OnResVal)       
    2067             flipRes.Bind(wx.EVT_KILL_FOCUS,OnResVal)
     1992            flipRes = G2G.ValidatedTxtCtrl(General,Flip,'Resolution',nDig=(10,2),min=0.25,max=2.)
    20681993            line2Sizer.Add(flipRes,0,WACV)
    20691994            line2Sizer.Add(wx.StaticText(General,label=' k-Factor (0.1-1.2): '),0,WACV)
    2070 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    2071             kFactor =  wx.TextCtrl(General,value='%.3f'%(Flip['k-factor']),style=wx.TE_PROCESS_ENTER)
    2072             kFactor.Bind(wx.EVT_TEXT_ENTER,OnkFactor)       
    2073             kFactor.Bind(wx.EVT_KILL_FOCUS,OnkFactor)
     1995            kFactor = G2G.ValidatedTxtCtrl(General,Flip,'k-factor',nDig=(10,3),min=0.1,max=1.2)
    20741996            line2Sizer.Add(kFactor,0,WACV)
    20751997            line2Sizer.Add(wx.StaticText(General,label=' k-Max (>=10.0): '),0,WACV)
    2076 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    2077             kMax = wx.TextCtrl(General,value='%.1f'%(Flip['k-Max']),style=wx.TE_PROCESS_ENTER)
    2078             kMax.Bind(wx.EVT_TEXT_ENTER,OnkMax)       
    2079             kMax.Bind(wx.EVT_KILL_FOCUS,OnkMax)
     1998            kMax = G2G.ValidatedTxtCtrl(General,Flip,'k-Max',nDig=(10,1),min=10.)
    20801999            line2Sizer.Add(kMax,0,WACV)
    20812000            flipSizer.Add(line2Sizer,0,WACV)
     
    20992018                MCSAdata['Data source'] = refList.GetValue()
    21002019           
    2101             def OnDmin(event):
    2102                 event.Skip()
    2103                 try:
    2104                     val = float(dmin.GetValue())
    2105                     if 1.0 <= val < 5.0:
    2106                         MCSAdata['dmin'] = val
    2107                 except ValueError:
    2108                     pass
    2109                 dmin.SetValue("%.3f"%(MCSAdata['dmin']))          #reset in case of error
    2110                 MCSAdata['newDmin'] = True
    2111 
    21122020            def OnCycles(event):
    21132021                MCSAdata['Cycles'] = int(cycles.GetValue())
     
    21172025                wx.CallAfter(UpdateGeneral,General.GetScrollPos(wx.VERTICAL))
    21182026               
    2119             def OnSlope(event):
    2120                 event.Skip()
    2121                 try:
    2122                     val = float(slope.GetValue())
    2123                     if .25 <= val < 1.0:
    2124                         MCSAdata['log slope'] = val
    2125                 except ValueError:
    2126                     pass
    2127                 slope.SetValue("%.3f"%(MCSAdata['log slope']))          #reset in case of error               
    2128            
    2129             def OnAjump(event):
    2130                 event.Skip()
    2131                 Obj = event.GetEventObject()
    2132                 name,ind = Indx[Obj.GetId()]
    2133                 try:
    2134                     val = float(Obj.GetValue())
    2135                     if .0 <= val <= 1.0:
    2136                         MCSAdata[name][ind] = val
    2137                 except ValueError:
    2138                     pass
    2139                 Obj.SetValue("%.3f"%(MCSAdata[name][ind]))
    2140                
    21412027            def OnRanStart(event):
    21422028                MCSAdata['ranStart'] = ranStart.GetValue()
     
    21452031#                MCSAdata['autoRan'] = autoRan.GetValue()
    21462032               
    2147             def OnRanRange(event):
    2148                 event.Skip()
    2149                 try:
    2150                     val = float(ranRange.GetValue())/100
    2151                     if 0.01 <= val <= 0.99:
    2152                         MCSAdata['ranRange'] = val
    2153                 except ValueError:
    2154                     pass
    2155                 ranRange.SetValue('%.1f'%(MCSAdata['ranRange']*100.))
    2156            
    21572033            def OnAnneal(event):
    21582034                event.Skip()
     
    21902066            lineSizer.Add(refList,0,WACV)
    21912067            lineSizer.Add(wx.StaticText(General,label=' d-min: '),0,WACV)
    2192 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    2193             dmin = wx.TextCtrl(General,-1,value='%.3f'%(MCSAdata['dmin']),style=wx.TE_PROCESS_ENTER)
    2194             dmin.Bind(wx.EVT_TEXT_ENTER,OnDmin)       
    2195             dmin.Bind(wx.EVT_KILL_FOCUS,OnDmin)
     2068            dmin = G2G.ValidatedTxtCtrl(General,MCSAdata,'dmin',nDig=(10,3),min=1.,max=5.)
    21962069            lineSizer.Add(dmin,0,WACV)
    21972070            mcsaSizer.Add(lineSizer)
     
    22092082            ranStart.SetValue(MCSAdata.get('ranStart',False))
    22102083            line2Sizer.Add(ranStart,0,WACV)
    2211 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    2212             ranRange = wx.TextCtrl(General,-1,value='%.1f'%(MCSAdata.get('ranRange',0.10)*100),style=wx.TE_PROCESS_ENTER)
    2213             ranRange.Bind(wx.EVT_TEXT_ENTER,OnRanRange)       
    2214             ranRange.Bind(wx.EVT_KILL_FOCUS,OnRanRange)
     2084            MCSAdata['ranRange'] = MCSAdata.get('ranRange',10.)  #patch for old gpx files
     2085            ranRange = G2G.ValidatedTxtCtrl(General,MCSAdata,'ranRange',nDig=(10,1),min=1.,max=99.)
    22152086            line2Sizer.Add(ranRange,0,WACV)
    22162087            line2Sizer.Add(wx.StaticText(General,label='% of ranges. '),0,WACV)
     
    22222093            mcsaSizer.Add((5,5),)
    22232094            line3Sizer = wx.BoxSizer(wx.HORIZONTAL)
    2224             Achoice = ['log','fast']                #these work
     2095            Achoice = ['log','fast','Basin Hopping']                #these work
    22252096#            Achoice = ['log','fast','cauchy','boltzmann']
    22262097            line3Sizer.Add(wx.StaticText(General,label=' MC/SA schedule: '),0,WACV)
     
    22392110                for i,name in enumerate(Names):
    22402111                    line3Sizer.Add(wx.StaticText(General,label=name),0,WACV)
    2241 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    2242                     Ajump =  wx.TextCtrl(General,-1,value='%.3f'%(MCSAdata[parms][i]),style=wx.TE_PROCESS_ENTER)
    2243                     Ajump.Bind(wx.EVT_TEXT_ENTER,OnAjump)       
    2244                     Ajump.Bind(wx.EVT_KILL_FOCUS,OnAjump)
    2245                     Indx[Ajump.GetId()] = [parms,i]
     2112                    Ajump = G2G.ValidatedTxtCtrl(General,MCSAdata[parms],i,nDig=(10,2),min=0.,max=1.)
    22462113                    line3Sizer.Add(Ajump,0,WACV)
    22472114            elif 'log' in MCSAdata['Algorithm']:
    22482115                line3Sizer.Add(wx.StaticText(General,label=' slope: '),0,WACV)
    2249 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    2250                 slope =  wx.TextCtrl(General,-1,value='%.3f'%(MCSAdata['log slope']),style=wx.TE_PROCESS_ENTER)
    2251                 slope.Bind(wx.EVT_TEXT_ENTER,OnSlope)       
    2252                 slope.Bind(wx.EVT_KILL_FOCUS,OnSlope)
     2116                slope = G2G.ValidatedTxtCtrl(General,MCSAdata,'log slope',nDig=(10,3),min=0.25,max=1.0)
    22532117                line3Sizer.Add(slope,0,WACV)
     2118            elif 'Basin Hopping' in MCSAdata['Algorithm']:
     2119                pass        #TODO basinhopping controls here
    22542120            mcsaSizer.Add(line3Sizer)
    22552121            mcsaSizer.Add((5,5),)
     
    37663632            wx.CallAfter(UpdateLayerData)
    37673633       
    3768         def OnToler(event): #used when Laue = unknown
    3769             event.Skip()
    3770             try:
    3771                 val = float(toler.GetValue())
    3772             except ValueError:
    3773                 val = Layers['Toler']
    3774             Layers['Toler'] = val
    3775             toler.SetValue('%.3f'%(Layers['Toler']))
    3776            
    37773634        def OnSadpPlot(event):
    37783635            sadpPlot.SetValue(False)
     
    38683725        def WidthSizer():
    38693726           
    3870             def OnWidthChange(event):
    3871                 event.Skip()
    3872                 Obj = event.GetEventObject()
    3873                 id = Indx[Obj]
    3874                 try:
    3875                     Layers['Width'][0][id] = max(0.005,min(1.0,float(Obj.GetValue())))
    3876                 except ValueError:
    3877                     pass
    3878                 Obj.SetValue('%.3f'%(Layers['Width'][0][id]))
    3879                
    38803727            def OnRefWidth(event):
    38813728                id = Indx[event.GetEventObject()]
     
    38833730           
    38843731            Labels = ['a','b']
    3885             widths = Layers['Width'][0]
    38863732            flags = Layers['Width'][1]
    38873733            widthSizer = wx.BoxSizer(wx.HORIZONTAL)
    38883734            for i in range(2):
    38893735                widthSizer.Add(wx.StaticText(layerData,label=u' layer width(%s) (<= 1\xb5m): '%(Labels[i])),0,WACV)
    3890 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    3891                 widthVal = wx.TextCtrl(layerData,value='%.3f'%(widths[i]),style=wx.TE_PROCESS_ENTER)
    3892                 widthVal.Bind(wx.EVT_TEXT_ENTER,OnWidthChange)       
    3893                 widthVal.Bind(wx.EVT_KILL_FOCUS,OnWidthChange)
    3894                 Indx[widthVal] = i
     3736                widthVal = G2G.ValidatedTxtCtrl(layerData,Layers['Width'][0],i,nDig=(10,3),min=0.005,max=1.0)
    38953737                widthSizer.Add(widthVal,0,WACV)
    38963738                widthRef = wx.CheckBox(layerData,label='Refine?')
     
    42744116            if Layers['Stacking'][0] == 'recursive':
    42754117                topLine.Add(wx.StaticText(layerData,label=' number of layers (<1022 or "infinite"): '),0,WACV)
    4276 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
     4118#        numLayers = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    42774119                numLayers = wx.TextCtrl(layerData,value=data['Layers']['Stacking'][1],style=wx.TE_PROCESS_ENTER)
    42784120                numLayers.Bind(wx.EVT_TEXT_ENTER,OnNumLayers)       
     
    43404182        if Layers['Laue'] == 'unknown':
    43414183            laueSizer.Add(wx.StaticText(layerData,label=' Diffraction symmetry tolerance: '),0,WACV)
    4342 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    4343             toler = wx.TextCtrl(layerData,value='%.3f'%(Layers['Toler']),style=wx.TE_PROCESS_ENTER)
    4344             toler.Bind(wx.EVT_TEXT_ENTER,OnToler)       
    4345             toler.Bind(wx.EVT_KILL_FOCUS,OnToler)
     4184            toler = G2G.ValidatedTxtCtrl(layerData,Layers,'Toler',nDig=(10,3))
    43464185            laueSizer.Add(toler,0,WACV)
    43474186        topSizer.Add(laueSizer,0,WACV)
     
    57095548                G2plt.PlotStructure(G2frame,data)
    57105549               
    5711             def OnZstep(event):
    5712                 event.Skip()
    5713                 try:
    5714                     step = float(Zstep.GetValue())
    5715                     if not (0.01 <= step <= 1.0):
    5716                         raise ValueError
    5717                 except ValueError:
    5718                     step = drawingData['Zstep']
    5719                 drawingData['Zstep'] = step
    5720                 Zstep.SetValue('%.2fA'%(drawingData['Zstep']))
    5721                
    57225550            def OnMoveZ(event):
    57235551                move = MoveZ.GetValue()*drawingData['Zstep']
     
    57885616            ZstepSizer = wx.BoxSizer(wx.HORIZONTAL)
    57895617            ZstepSizer.Add(wx.StaticText(drawOptions,-1,' Z step:'),0,WACV)
    5790 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    5791             Zstep = wx.TextCtrl(drawOptions,value='%.2f'%(drawingData['Zstep']),
    5792                 style=wx.TE_PROCESS_ENTER)
    5793             Zstep.Bind(wx.EVT_TEXT_ENTER,OnZstep)
    5794             Zstep.Bind(wx.EVT_KILL_FOCUS,OnZstep)
     5618            Zstep = G2G.ValidatedTxtCtrl(drawOptions,drawingData,'Zstep',nDig=(10,2),min=0.01,max=1.0)
    57955619            ZstepSizer.Add(Zstep,0,WACV)
    57965620            slideSizer.Add(ZstepSizer)
     
    63166140                wx.CallLater(100,UpdateTexture)
    63176141               
    6318             def OnshToler(event):
    6319                 event.Skip()
    6320                 try:
    6321                     value = float(shToler.GetValue())
    6322                     Penalty[1] = value
    6323                 except ValueError:
    6324                     pass
    6325                 shToler.SetValue('%.2f'%(Penalty[1]))
    6326            
    63276142            A = G2lat.cell2A(generalData['Cell'][1:7])
    63286143            hkls = G2lat.GenPfHKLs(10,SGData,A)   
     
    63356150            shPenalty.Add(hklList,0,WACV)
    63366151            shPenalty.Add(wx.StaticText(Texture,wx.ID_ANY,' Zero MRD tolerance: '),0,WACV)
    6337 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    6338             shToler = wx.TextCtrl(Texture,wx.ID_ANY,'%.2f'%(Penalty[1]),style=wx.TE_PROCESS_ENTER)
    6339             shToler.Bind(wx.EVT_TEXT_ENTER,OnshToler)
    6340             shToler.Bind(wx.EVT_KILL_FOCUS,OnshToler)
     6152            shToler = G2G.ValidatedTxtCtrl(Texture,Penalty,1,nDig=(10,2),min=0.001)
    63416153            shPenalty.Add(shToler,0,WACV)
    63426154            return shPenalty   
     
    78737685                POData['Coef'][1] = poRef.GetValue()
    78747686               
    7875             def OnPOVal(event):
    7876                 event.Skip()
    7877                 try:
    7878                     mdVal = float(poVal.GetValue())
    7879                     if mdVal > 0:
    7880                         POData['Coef'][0] = mdVal
    7881                 except ValueError:
    7882                     pass
    7883                 poVal.SetValue("%.3f"%(POData['Coef'][0]))
    7884                
    78857687            def OnPORange(event):
    78867688                event.Skip()
     
    79157717            poRef.Bind(wx.EVT_CHECKBOX,OnPORef)
    79167718            poSizer.Add(poRef,0,WACV)
    7917 #        azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    7918             poVal = wx.TextCtrl(G2frame.MCSA,-1,'%.3f'%(POData['Coef'][0]),style=wx.TE_PROCESS_ENTER)
    7919             poVal.Bind(wx.EVT_TEXT_ENTER,OnPOVal)
    7920             poVal.Bind(wx.EVT_KILL_FOCUS,OnPOVal)
     7719            poVal = G2G.ValidatedTxtCtrl(G2frame.MCSA,POData['Coef'],0,nDig=(10,3),min=0.)
    79217720            poSizer.Add(poVal,0,WACV)
    79227721            poSizer.Add(wx.StaticText(G2frame.MCSA,-1,' Range: '),0,WACV)
Note: See TracChangeset for help on using the changeset viewer.