- Timestamp:
- Feb 5, 2021 10:14:23 PM (2 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/G2compare.py
r4785 r4801 162 162 item = File.Append(wx.ID_ANY,'&Import single project...\tCtrl+O','Open a GSAS-II project file (*.gpx)') 163 163 self.Bind(wx.EVT_MENU, self.onLoadGPX, id=item.GetId()) 164 item = File.Append(wx.ID_ANY,'&Import multiple projects...\tCtrl+ M','Open a GSAS-II project file (*.gpx)')164 item = File.Append(wx.ID_ANY,'&Import multiple projects...\tCtrl+U','Open a GSAS-II project file (*.gpx)') 165 165 self.Bind(wx.EVT_MENU, self.onLoadMultGPX, id=item.GetId()) 166 166 item = File.Append(wx.ID_ANY,'&Wildcard import of projects...\tCtrl+W','Open a GSAS-II project file (*.gpx)') … … 177 177 'Display {}s'.format(m)) 178 178 self.Bind(wx.EVT_MENU, self.onRefresh, id=item.GetId()) 179 item = self.Mode.Append(wx.ID_ANY,'Set histogram filter','Set a filter for histograms to display')180 self.Bind(wx.EVT_MENU, self.onHistFilter, id= item.GetId())179 self.hFilter = self.Mode.Append(wx.ID_ANY,'Filter by histogram\tCtrl+F','Only show selected histograms') 180 self.Bind(wx.EVT_MENU, self.onHistFilter, id=self.hFilter.GetId()) 181 181 modeMenu = wx.Menu(title='') 182 182 self.MenuBar.Append(menu=modeMenu, title='TBD') 183 183 self.modeMenuPos = self.MenuBar.FindMenu('TBD') 184 #item = modeMenu.Append(wx.ID_ANY,'test') # menu can't be empty185 184 186 185 Frame.SetMenuBar(self.MenuBar) … … 227 226 228 227 self.fileList = [] # list of files read for use in Reload 229 self.histList = [] # list of histograms loaded for unique naming 228 self.histListOrg = [] # list of histograms, before mods for unique naming 229 self.histList = [] # list of histograms, after mods for unique naming 230 230 self.projList = [] 231 231 … … 298 298 self.GPXtree.DeleteChildren(self.root) # delete tree contents 299 299 self.histList = [] # clear list of loaded histograms 300 self.histListOrg = [] 300 301 self.projList = [] 302 self.hFilter.Enable(not self.getMode() == "Phase") # Filter disabled for Phase display 301 303 for fil,mode in self.fileList: 302 304 self.loadFile(fil) … … 410 412 break 411 413 if not data[0][0].startswith('PWDR'): continue 414 self.histListOrg.append(data[0][0]) 412 415 if self.PWDRfilter is not None: # implement filter 413 416 if self.PWDRfilter not in data[0][0]: continue … … 459 462 def onHistFilter(self,event): 460 463 'Load a filter string via a dialog in response to a menu event' 461 lbl = ''464 defval = '' 462 465 if self.PWDRfilter is not None: 463 lbl = self.PWDRfilter 466 defval = self.PWDRfilter 467 uniqueHist = sorted(set(self.histListOrg)) 464 468 dlg = G2G.SingleStringDialog(self,'Set string', 465 469 'Set a string that must be in histogram name', 466 lbl,size=(400,-1))470 defval, choices=uniqueHist, size=(400,-1)) 467 471 if dlg.Show(): 468 472 if dlg.GetValue().strip() == '': … … 550 554 #Phases = None 551 555 #G2frame.GPXtree.SetItemPyData(Id,Covar[1]) 556 if self.PWDRfilter is None: # implement filter 557 match = True 558 else: 559 match = False 560 Covar = None 552 561 try: 553 562 while True: … … 556 565 except EOFError: 557 566 break 558 #if data[0][0] == 'Controls' and 'LastSavedUsing' in data[0][1]: 567 if data[0][0].startswith('PWDR'): 568 self.histListOrg.append(data[0][0]) 569 if self.PWDRfilter is not None: # implement filter 570 if self.PWDRfilter in data[0][0]: match = True 559 571 if not data[0][0].startswith('Covariance'): continue 560 572 Covar = data[0] … … 570 582 projInfo += ['?'] 571 583 f = '{:6.2f}' 572 #GSASIIpath.IPyBreak_base()573 #if self.PWDRfilter is not None: # implement filter574 # if self.PWDRfilter not in data[0][0]: continue575 584 Covar[0] = shortname # + ' Covariance' 585 if match and Covar: 576 586 Id = G2frame.GPXtree.AppendItem(parent=G2frame.root,text=Covar[0]) 577 587 G2frame.GPXtree.SetItemPyData(Id,Covar[1]) 578 588 self.projList.append(projInfo) 579 break580 else:581 print("{} does not have refinement results".format(shortname))582 589 except Exception as errmsg: 583 590 if GSASIIpath.GetConfigValue('debug'): … … 880 887 GSASIIpath.InvokeDebugOpts() 881 888 Frame = main(application) # start the GUI 889 loadall = False 882 890 argLoadlist = sys.argv[1:] 883 891 for arg in argLoadlist: … … 886 894 Frame.fileList.append([fil,'GPX']) 887 895 Frame.loadFile(fil) 896 elif '-d' in arg: 897 loadall = True 888 898 else: 889 899 print('File {} not found. Skipping'.format(fil)) 890 900 Frame.doneLoad() 891 901 # debug code to select Project in initial mode 892 #Frame.onLoadWildGPX(None,wildcard='*') 893 #Frame.Mode.FindItemById(Frame.wxID_Mode['Project']).Check(True) 894 #Frame.onRefresh(None) 902 if loadall: 903 Frame.onLoadWildGPX(None,wildcard='*') 904 Frame.Mode.FindItemById(Frame.wxID_Mode['Project']).Check(True) 905 Frame.onRefresh(None) 895 906 896 907 application.MainLoop() -
trunk/GSASIIctrlGUI.py
r4799 r4801 2689 2689 :param str prompt: string to tell use what they are inputting 2690 2690 :param str value: default input value, if any 2691 :param tuple size: specifies default size and width for dialog 2692 [default (200,-1)] 2693 :param str help: if supplied, a help button is added to the dialog that 2694 can be used to display the supplied help text/URL for setting this 2695 variable. (Default is '', which is ignored.) 2696 :param list choices: a set of strings that provide optional values that 2697 can be selected from; these can be edited if desired. 2691 2698 ''' 2692 def __init__(self,parent,title,prompt,value='',size=(200,-1),help=''): 2699 def __init__(self,parent,title,prompt,value='',size=(200,-1),help='', 2700 choices=None): 2693 2701 wx.Dialog.__init__(self,parent,wx.ID_ANY,title,pos=wx.DefaultPosition, 2694 2702 style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER) … … 2700 2708 mainSizer.Add(wx.StaticText(self.panel,-1,self.prompt),0,wx.ALIGN_CENTER) 2701 2709 sizer1 = wx.BoxSizer(wx.HORIZONTAL) 2702 self.valItem = wx.TextCtrl(self.panel,-1,value=self.value,size=size) 2710 if choices: 2711 self.valItem = wx.ComboBox(self.panel, wx.ID_ANY, value, 2712 size=size,choices=[value]+choices, 2713 style=wx.CB_DROPDOWN|wx.TE_PROCESS_ENTER) 2714 else: 2715 self.valItem = wx.TextCtrl(self.panel,-1,value=self.value,size=size) 2703 2716 sizer1.Add(self.valItem,0,wx.ALIGN_CENTER) 2704 2717 if help: … … 6133 6146 htmlPanel.LoadFile(helplink) 6134 6147 else: 6135 if sys.platform == "darwin": # for Mac, force use of safari to preserve anchors on file URLs 6136 wb = webbrowser.MacOSXOSAScript('safari') 6137 else: 6138 wb = webbrowser 6148 wb = webbrowser 6149 if sys.platform == "darwin": # on Mac, use a OSXscript so that file anchors work 6150 # Get the default browser, this will fail in py2.7 and might fail, so 6151 # use safari as a backup 6152 appleScript = ''' 6153 use framework "AppKit" 6154 use AppleScript version "2.4" 6155 use scripting additions 6156 6157 property NSWorkspace : a reference to current application's NSWorkspace 6158 property NSURL : a reference to current application's NSURL 6159 6160 set wurl to NSURL's URLWithString:"https://www.apple.com" 6161 set thisBrowser to (NSWorkspace's sharedWorkspace)'s ¬ 6162 URLForApplicationToOpenURL:wurl 6163 set appname to (thisBrowser's absoluteString)'s lastPathComponent()'s ¬ 6164 stringByDeletingPathExtension() as text 6165 return appname as text 6166 ''' 6167 import subprocess 6168 try: 6169 browser = subprocess.check_output(["osascript","-e",appleScript], encoding='UTF-8').strip() 6170 wb = webbrowser.MacOSXOSAScript(browser) 6171 except: 6172 wb = webbrowser.MacOSXOSAScript('safari') 6173 # open the link 6139 6174 helplink = os.path.join(path2GSAS2,'help',helplink) 6140 6175 pfx = "file://" -
trunk/GSASIIdataGUI.py
r4789 r4801 6633 6633 6634 6634 tmpSizer=wx.BoxSizer(wx.HORIZONTAL) 6635 tmpSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Refinementtype: '),0,WACV)6635 tmpSizer.Add(wx.StaticText(G2frame.dataWindow,label='Refinement\ntype: '),0,WACV) 6636 6636 tmpSizer.Add(G2G.HelpButton(G2frame.dataWindow,helpIndex='RefineType')) 6637 6637 LSSizer.Add(tmpSizer,0,WACV) … … 6643 6643 6644 6644 LSSizer.Add(derivSel,0,WACV) 6645 LSSizer.Add(wx.StaticText(G2frame.dataWindow,label=' 6645 LSSizer.Add(wx.StaticText(G2frame.dataWindow,label='Min delta-M/M: '),0,WACV) 6646 6646 LSSizer.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'min dM/M',nDig=(10,2,'g'),xmin=1.e-9,xmax=1.),0,WACV) 6647 6647 if 'Hessian' in data['deriv type']: 6648 LSSizer.Add(wx.StaticText(G2frame.dataWindow,label=' 6648 LSSizer.Add(wx.StaticText(G2frame.dataWindow,label='Max cycles: '),0,WACV) 6649 6649 Choice = ['0','1','2','3','5','10','15','20'] 6650 6650 maxCyc = wx.ComboBox(parent=G2frame.dataWindow,value=str(data['max cyc']),choices=Choice, … … 6659 6659 marqLam.Bind(wx.EVT_COMBOBOX,OnMarqLam) 6660 6660 LSSizer.Add(marqLam,0,WACV) 6661 LSSizer.Add(wx.StaticText(G2frame.dataWindow,label=' SVD zerotolerance:'),0,WACV)6661 LSSizer.Add(wx.StaticText(G2frame.dataWindow,label='SVD zero\ntolerance:'),0,WACV) 6662 6662 LSSizer.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'SVDtol',nDig=(10,1,'g'),xmin=1.e-9,xmax=.01),0,WACV) 6663 6663 else: #TODO what for SVD refine? … … 6712 6712 G2frame.dataWindow.ClearData() 6713 6713 SetDataMenuBar(G2frame,G2frame.dataWindow.ControlsMenu) 6714 bigSizer = wx.BoxSizer(wx.HORIZONTAL) 6714 6715 mainSizer = wx.BoxSizer(wx.VERTICAL) 6715 6716 mainSizer.Add((5,5),0) … … 6718 6719 subSizer.Add(wx.StaticText(G2frame.dataWindow,label='Refinement Controls'),0,WACV) 6719 6720 subSizer.Add((-1,-1),1,wx.EXPAND) 6720 subSizer.Add(G2G.HelpButton(G2frame.dataWindow,helpIndex='Controls'))6721 6721 mainSizer.Add(subSizer,0,wx.EXPAND) 6722 6722 mainSizer.Add((5,5),0) … … 6774 6774 subSizer.Add(btn) 6775 6775 mainSizer.Add(subSizer) 6776 6777 mainSizer.Layout() 6778 mainSizer.FitInside(G2frame.dataWindow) 6779 G2frame.dataWindow.SetSizer(mainSizer) 6776 bigSizer.Add(mainSizer) 6777 6778 bigSizer.Add(G2G.HelpButton(G2frame.dataWindow,helpIndex='Controls')) 6779 bigSizer.Layout() 6780 bigSizer.FitInside(G2frame.dataWindow) 6781 G2frame.dataWindow.SetSizer(bigSizer) 6780 6782 G2frame.dataWindow.SetDataSize() 6781 6783 G2frame.SendSizeEvent() … … 8821 8823 data = G2frame.GPXtree.GetItemPyData(item) 8822 8824 text = '' 8823 subSizer = wx.BoxSizer(wx.HORIZONTAL)8824 subSizer .Add((-1,-1),1,wx.EXPAND)8825 mainSizer = wx.BoxSizer(wx.HORIZONTAL) 8826 subSizer = wx.BoxSizer(wx.VERTICAL) 8825 8827 if 'Rvals' in data: 8826 8828 lbl = 'Refinement results' 8827 8829 else: 8828 8830 lbl = 'No refinement results' 8829 subSizer.Add(wx.StaticText(G2frame.dataWindow,label=lbl),0,WACV) 8830 subSizer.Add((-1,-1),1,wx.EXPAND) 8831 subSizer.Add(G2G.HelpButton(G2frame.dataWindow,helpIndex='Covariance')) 8832 G2frame.dataWindow.GetSizer().Add(subSizer) #,0,wx.EXPAND) 8831 subSizer.Add(wx.StaticText(G2frame.dataWindow,label=lbl)) 8833 8832 if 'Rvals' in data: 8834 8833 Nvars = len(data['varyList']) … … 8845 8844 if '2' not in platform.python_version_tuple()[0]: # greek OK in Py2? 8846 8845 text += '\n\tReduced Ï**2 = {:.2f}'.format(Rvals['GOF']**2) 8847 G2frame.dataWindow.GetSizer().Add( 8848 wx.StaticText(G2frame.dataWindow,wx.ID_ANY,text)) 8846 subSizer.Add(wx.StaticText(G2frame.dataWindow,wx.ID_ANY,text)) 8847 mainSizer.Add(subSizer) 8848 mainSizer.Add(G2G.HelpButton(G2frame.dataWindow,helpIndex='Covariance')) 8849 #mainSizer.Add((-1,-1),1,wx.EXPAND) 8850 G2frame.dataWindow.GetSizer().Add(mainSizer) 8849 8851 # G2frame.dataWindow.GetSizer().Add((-1,-1),1,wx.EXPAND,1) 8850 8852 G2plt.PlotCovariance(G2frame,data) -
trunk/GSASIIddataGUI.py
r4783 r4801 1001 1001 keyList = G2frame.GetHistogramNames(['PWDR','HKLF']) 1002 1002 UseList = data['Histograms'] 1003 # look for histgrams that are no longer in the project (should not happen!) 1004 broken = [i for i in UseList if i not in keyList] 1005 if broken: 1006 msg = 'Removing histogram(s) referenced in this phase that are no longer in project:\n\n' 1007 for i,j in enumerate(broken): 1008 if i > 0: msg += ', ' 1009 msg += j 1010 del data['Histograms'][j] 1011 G2G.G2MessageBox(G2frame,msg,'Removing bad histograms') 1003 1012 if UseList: 1004 1013 G2frame.dataWindow.DataMenu.Enable(G2G.wxID_DATADELETE,True) -
trunk/GSASIIphsGUI.py
r4789 r4801 4571 4571 wx.CallAfter(UpdateRMC) 4572 4572 4573 def GetAtmChoice( RMCPdict):4573 def GetAtmChoice(pnl,RMCPdict): 4574 4574 4575 4575 Indx = {} … … 4604 4604 nTypes = len(RMCPdict['aTypes']) 4605 4605 atmChoice = wx.FlexGridSizer(nTypes+1,5,5) 4606 atmChoice.Add(wx.StaticText( G2frame.FRMC,label=' Setatom ordering: '),0,WACV)4606 atmChoice.Add(wx.StaticText(pnl,label='atom ordering: '),0,WACV) 4607 4607 for iType in range(nTypes): 4608 4608 atChoice = RMCPdict['atSeq'][iType:] 4609 atmSel = wx.ComboBox( G2frame.FRMC,choices=atChoice,style=wx.CB_DROPDOWN|wx.TE_READONLY)4609 atmSel = wx.ComboBox(pnl,choices=atChoice,style=wx.CB_DROPDOWN|wx.TE_READONLY) 4610 4610 atmSel.SetStringSelection(RMCPdict['atSeq'][iType]) 4611 4611 atmSel.Bind(wx.EVT_COMBOBOX,OnAtSel) … … 4613 4613 atmChoice.Add(atmSel,0,WACV) 4614 4614 if RMCPdict['useBVS']: 4615 atmChoice.Add(wx.StaticText( G2frame.FRMC,label=' Select valence: '),0,WACV)4615 atmChoice.Add(wx.StaticText(pnl,label='Valence: '),0,WACV) 4616 4616 for itype in range(nTypes): 4617 4617 valChoice = atmdata.BVSoxid[RMCPdict['atSeq'][itype]] 4618 valSel = wx.ComboBox( G2frame.FRMC,choices=valChoice,style=wx.CB_DROPDOWN|wx.TE_READONLY)4618 valSel = wx.ComboBox(pnl,choices=valChoice,style=wx.CB_DROPDOWN|wx.TE_READONLY) 4619 4619 try: 4620 4620 valSel.SetStringSelection(RMCPdict['Oxid'][itype][0]) … … 4624 4624 Indx[valSel.GetId()] = itype 4625 4625 atmChoice.Add(valSel,0,WACV) 4626 atmChoice.Add(wx.StaticText( G2frame.FRMC,label='BVS weight: '),0,WACV)4626 atmChoice.Add(wx.StaticText(pnl,label='BVS weight: '),0,WACV) 4627 4627 for itype in range(nTypes): 4628 atmChoice.Add(G2G.ValidatedTxtCtrl( G2frame.FRMC,RMCPdict['Oxid'][itype],1,xmin=0.),0,WACV)4628 atmChoice.Add(G2G.ValidatedTxtCtrl(pnl,RMCPdict['Oxid'][itype],1,xmin=0.),0,WACV) 4629 4629 if G2frame.RMCchoice == 'RMCProfile': 4630 atmChoice.Add(wx.StaticText( G2frame.FRMC,label=' Setmax shift: '),0,WACV)4630 atmChoice.Add(wx.StaticText(pnl,label='max shift: '),0,WACV) 4631 4631 for iType in range(nTypes): 4632 4632 atId = RMCPdict['atSeq'][iType] 4633 atmChoice.Add(G2G.ValidatedTxtCtrl( G2frame.FRMC,RMCPdict['aTypes'],atId,xmin=0.,xmax=1.),0,WACV)4633 atmChoice.Add(G2G.ValidatedTxtCtrl(pnl,RMCPdict['aTypes'],atId,xmin=0.,xmax=1.),0,WACV) 4634 4634 return atmChoice 4635 4635 … … 4664 4664 return swapSizer 4665 4665 4666 def GetPairSizer( RMCdict):4666 def GetPairSizer(pnl,RMCdict): 4667 4667 pairSizer = wx.FlexGridSizer(len(RMCPdict['Pairs'])+1,5,5) 4668 4668 pairSizer.Add((5,5),0) 4669 4669 for pair in RMCPdict['Pairs']: 4670 pairSizer.Add(wx.StaticText( G2frame.FRMC,label=pair),0,WACV)4670 pairSizer.Add(wx.StaticText(pnl,label=pair),0,WACV) 4671 4671 if G2frame.RMCchoice == 'RMCProfile': 4672 pairSizer.Add(wx.StaticText( G2frame.FRMC,label='%14s'%' Hard min: '),0,WACV)4672 pairSizer.Add(wx.StaticText(pnl,label='%14s'%' Hard min: '),0,WACV) 4673 4673 for pair in RMCPdict['Pairs']: 4674 pairSizer.Add(G2G.ValidatedTxtCtrl( G2frame.FRMC,RMCPdict['Pairs'][pair],0,xmin=0.,xmax=10.,size=(50,25)),0,WACV)4675 pairSizer.Add(wx.StaticText( G2frame.FRMC,label='%14s'%' Search from: '),0,WACV)4674 pairSizer.Add(G2G.ValidatedTxtCtrl(pnl,RMCPdict['Pairs'][pair],0,xmin=0.,xmax=10.,size=(50,25)),0,WACV) 4675 pairSizer.Add(wx.StaticText(pnl,label='%14s'%' Search from: '),0,WACV) 4676 4676 for pair in RMCPdict['Pairs']: 4677 pairSizer.Add(G2G.ValidatedTxtCtrl( G2frame.FRMC,RMCPdict['Pairs'][pair],4677 pairSizer.Add(G2G.ValidatedTxtCtrl(pnl,RMCPdict['Pairs'][pair], 4678 4678 1,xmin=0.,xmax=10.,size=(50,25)),0,WACV) 4679 pairSizer.Add(wx.StaticText( G2frame.FRMC,label='%14s'%'to: '),0,WACV)4679 pairSizer.Add(wx.StaticText(pnl,label='%14s'%'to: '),0,WACV) 4680 4680 for pair in RMCPdict['Pairs']: 4681 pairSizer.Add(G2G.ValidatedTxtCtrl( G2frame.FRMC,RMCPdict['Pairs'][pair],2,xmin=0.,xmax=10.,size=(50,25)),0,WACV)4681 pairSizer.Add(G2G.ValidatedTxtCtrl(pnl,RMCPdict['Pairs'][pair],2,xmin=0.,xmax=10.,size=(50,25)),0,WACV) 4682 4682 return pairSizer 4683 4683 … … 4864 4864 if G2frame.FRMC.GetSizer(): 4865 4865 G2frame.FRMC.GetSizer().Clear(True) 4866 bigSizer = wx.BoxSizer(wx.HORIZONTAL) 4866 4867 mainSizer = wx.BoxSizer(wx.VERTICAL) 4867 4868 runFile = ' ' … … 5168 5169 5169 5170 elif G2frame.RMCchoice == 'RMCProfile': 5170 mainSizer.Add(wx.StaticText(G2frame.FRMC,label=''' "RMCProfile: Reverse Monte Carlo for polycrystalline materials", M.G. Tucker, D.A. Keen, M.T. Dove, A.L. Goodwin and Q. Hui, 5171 Jour. Phys.: Cond. Matter 2007, 19, 335218. doi: https://doi.org/10.1088/0953-8984/19/33/335218 5172 ''')) 5173 topSizer = wx.BoxSizer(wx.HORIZONTAL) 5174 topSizer.Add(wx.StaticText(G2frame.FRMC,label=' RMCProfile setup:'),0,WACV) 5175 # add help button to bring up help web page - at right sede of window 5176 topSizer.Add((-1,-1),1,wx.EXPAND) 5177 topSizer.Add(G2G.HelpButton(G2frame.FRMC,helpIndex=G2frame.dataWindow.helpKey)) 5178 mainSizer.Add(topSizer,0,wx.EXPAND) 5179 # mainSizer.Add(wx.StaticText(G2frame.FRMC,label=' RMCProfile setup:')) 5171 subSizer = wx.BoxSizer(wx.HORIZONTAL) 5172 subSizer.Add((-1,-1),1,wx.EXPAND) 5173 subSizer.Add(wx.StaticText(G2frame.FRMC,label='RMCProfile setup'),0,WACV) 5174 subSizer.Add((-1,-1),1,wx.EXPAND) 5175 mainSizer.Add(subSizer,0,wx.EXPAND) 5176 mainSizer.Add((5,5)) 5177 mainSizer.Add(wx.StaticText(G2frame.FRMC,label= 5178 '''"RMCProfile: Reverse Monte Carlo for polycrystalline materials", M.G. Tucker, 5179 D.A. Keen, M.T. Dove, A.L. Goodwin and Q. Hui, Jour. Phys.: Cond. Matter (2007), 5180 19, 335218. doi: https://doi.org/10.1088/0953-8984/19/33/335218''')) 5181 mainSizer.Add((5,5)) 5180 5182 if not data['RMC']['RMCProfile']: 5181 5183 Atypes = [atype.split('+')[0].split('-')[0] for atype in data['General']['AtomTypes']] … … 5276 5278 return superSizer 5277 5279 5278 def GetBvsSizer( ):5280 def GetBvsSizer(pnl): 5279 5281 5280 5282 def OnResetBVS(event): … … 5295 5297 bvsSizer.Add((5,5),0) 5296 5298 for pair in RMCPdict['BVS']: 5297 bvsSizer.Add(wx.StaticText( G2frame.FRMC,label=pair),0,WACV)5298 bvsSizer.Add(wx.StaticText( G2frame.FRMC,label=' Reset:'),0,WACV)5299 bvsSizer.Add(wx.StaticText(pnl,label=pair),0,WACV) 5300 bvsSizer.Add(wx.StaticText(pnl,label=' Reset:'),0,WACV) 5299 5301 for pair in RMCPdict['BVS']: 5300 reset = wx.Button( G2frame.FRMC,label='Yes')5302 reset = wx.Button(pnl,label='Yes') 5301 5303 bvsSizer.Add(reset,0,WACV) 5302 5304 reset.Bind(wx.EVT_BUTTON,OnResetBVS) 5303 5305 Indx[reset.GetId()] = pair 5304 bvsSizer.Add(wx.StaticText( G2frame.FRMC,label=' Bond length:'),0,WACV)5306 bvsSizer.Add(wx.StaticText(pnl,label=' Bond length:'),0,WACV) 5305 5307 for pair in RMCPdict['BVS']: 5306 bvsSizer.Add(G2G.ValidatedTxtCtrl( G2frame.FRMC,RMCPdict['BVS'][pair],0,xmin=0.,xmax=10.,size=(50,25)),0,WACV)5307 bvsSizer.Add(wx.StaticText( G2frame.FRMC,label=' B constant (0.37): '),0,WACV)5308 bvsSizer.Add(G2G.ValidatedTxtCtrl(pnl,RMCPdict['BVS'][pair],0,xmin=0.,xmax=10.,size=(50,25)),0,WACV) 5309 bvsSizer.Add(wx.StaticText(pnl,label=' B constant (0.37): '),0,WACV) 5308 5310 for pair in RMCPdict['BVS']: 5309 bvsSizer.Add(G2G.ValidatedTxtCtrl( G2frame.FRMC,RMCPdict['BVS'][pair],1,xmin=0.,xmax=10.,size=(50,25)),0,WACV)5310 bvsSizer.Add(wx.StaticText( G2frame.FRMC,label=' Cut off: '),0,WACV)5311 bvsSizer.Add(G2G.ValidatedTxtCtrl(pnl,RMCPdict['BVS'][pair],1,xmin=0.,xmax=10.,size=(50,25)),0,WACV) 5312 bvsSizer.Add(wx.StaticText(pnl,label=' Cut off: '),0,WACV) 5311 5313 for pair in RMCPdict['BVS']: 5312 bvsSizer.Add(G2G.ValidatedTxtCtrl( G2frame.FRMC,RMCPdict['BVS'][pair],2,xmin=0.,xmax=10.,size=(50,25)),0,WACV)5314 bvsSizer.Add(G2G.ValidatedTxtCtrl(pnl,RMCPdict['BVS'][pair],2,xmin=0.,xmax=10.,size=(50,25)),0,WACV) 5313 5315 return bvsSizer 5314 5316 … … 5470 5472 mainSizer.Add(GetSuperSizer(),0) 5471 5473 5472 mainSizer.Add(wx.StaticText(G2frame.FRMC,label=' NB: be sure to set cations first && anions last in atom ordering'),0) 5473 mainSizer.Add(GetAtmChoice(RMCPdict),0) 5474 aPanel = wxscroll.ScrolledPanel(G2frame.FRMC, wx.ID_ANY, 5475 style=wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER) 5476 mSizer = wx.BoxSizer(wx.VERTICAL) 5477 mSizer.Add(wx.StaticText(aPanel,label='Enter atom settings'),0) 5478 mSizer.Add(GetAtmChoice(aPanel,RMCPdict),0) 5479 mSizer.Add(wx.StaticText(aPanel,label=' N.B.: be sure to set cations first && anions last in atom ordering')) 5480 mSizer.Layout() 5481 aPanel.SetSizer(mSizer) 5482 aPanel.SetMinSize((300,mSizer.GetMinSize()[1])) 5483 aPanel.SetAutoLayout(1) 5484 aPanel.SetupScrolling() 5485 mainSizer.Add(aPanel,1,wx.EXPAND) 5474 5486 5475 5487 G2G.HorizontalLine(mainSizer,G2frame.FRMC) … … 5484 5496 5485 5497 G2G.HorizontalLine(mainSizer,G2frame.FRMC) 5486 mainSizer.Add(wx.StaticText(G2frame.FRMC,label=' Enter constraints && restraints:'),0) 5487 mainSizer.Add(wx.StaticText(G2frame.FRMC,label=' Set minimum && maximum distances for:'),0) 5488 mainSizer.Add(GetPairSizer(RMCPdict),0) 5498 5499 sPanel = wxscroll.ScrolledPanel(G2frame.FRMC, wx.ID_ANY, 5500 style = wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER) 5501 mSizer = wx.BoxSizer(wx.VERTICAL) 5502 mSizer.Add(wx.StaticText(sPanel,label='Enter constraints && restraints via minimum && maximum distances for atom pairs:'),0) 5503 mSizer.Add(GetPairSizer(sPanel,RMCPdict),0) 5504 sPanel.SetSizer(mSizer) 5505 mSizer.Layout() 5506 sPanel.SetMinSize((300,25+mSizer.GetMinSize()[1])) 5507 sPanel.SetAutoLayout(1) 5508 sPanel.SetupScrolling() 5509 mainSizer.Add(sPanel,1,wx.EXPAND) 5489 5510 5490 5511 G2G.HorizontalLine(mainSizer,G2frame.FRMC) … … 5494 5515 mainSizer.Add(useBVS,0) 5495 5516 if RMCPdict.get('useBVS',False): 5496 mainSizer.Add(GetBvsSizer(),0) 5497 5517 sPanel = wxscroll.ScrolledPanel(G2frame.FRMC, wx.ID_ANY, 5518 style = wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER) 5519 mSizer = wx.BoxSizer(wx.VERTICAL) 5520 mSizer.Add(GetBvsSizer(sPanel),0) 5521 sPanel.SetSizer(mSizer) 5522 mSizer.Layout() 5523 sPanel.SetMinSize((300,25+mSizer.GetMinSize()[1])) 5524 sPanel.SetAutoLayout(1) 5525 sPanel.SetupScrolling() 5526 mainSizer.Add(sPanel,1,wx.EXPAND) 5527 5498 5528 G2G.HorizontalLine(mainSizer,G2frame.FRMC) 5499 5529 fxcnBox = wx.BoxSizer(wx.HORIZONTAL) … … 5568 5598 FileSizer(RMCPdict,mainSizer) 5569 5599 5570 SetPhaseWindow(G2frame.FRMC,mainSizer) 5600 bigSizer.Add(mainSizer,1,wx.EXPAND) 5601 # add help button to bring up help web page - at right sede of window 5602 bigSizer.Add(G2G.HelpButton(G2frame.FRMC,helpIndex=G2frame.dataWindow.helpKey)) 5603 SetPhaseWindow(G2frame.FRMC,bigSizer) 5571 5604 5572 5605 def OnSetupRMC(event):
Note: See TracChangeset
for help on using the changeset viewer.