Changeset 4498 for trunk/GSASIIctrlGUI.py
- Timestamp:
- Jun 18, 2020 9:32:02 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIctrlGUI.py
r4496 r4498 170 170 import GSASIIfiles as G2fil 171 171 import GSASIIscriptable as G2sc 172 172 import GSASIIpwd as G2pwd 173 import GSASIIlattice as G2lat 174 if sys.version_info[0] >= 3: 175 unicode = str 176 basestring = str 173 177 174 178 # Define a short names for convenience … … 2877 2881 self.ChoiceList = ChoiceList 2878 2882 self.ColumnData = ColumnData 2879 nCol = len(ColumnData)2880 2883 if options['style'] & wx.OK: 2881 2884 useOK = True … … 4639 4642 def OnHelpAbout(self, event): 4640 4643 "Display an 'About GSAS-II' box" 4641 import GSASII4642 4644 try: 4643 4645 import wx.adv as wxadv # AboutBox moved here in Phoenix … … 5043 5045 return selected 5044 5046 5047 class MultipleChoicesDialog(wx.Dialog): 5048 '''A dialog that offers a series of choices, each with a 5049 title and a wx.Choice widget. Intended to be used Modally. 5050 typical input: 5051 5052 * choicelist=[ ('a','b','c'), ('test1','test2'),('no choice',)] 5053 * headinglist = [ 'select a, b or c', 'select 1 of 2', 'No option here'] 5054 5055 selections are placed in self.chosen when OK is pressed 5056 5057 Also see GSASIIctrlGUI 5058 ''' 5059 def __init__(self,choicelist,headinglist, 5060 head='Select options', 5061 title='Please select from options below', 5062 parent=None): 5063 self.chosen = [] 5064 wx.Dialog.__init__( 5065 self,parent,wx.ID_ANY,head, 5066 pos=wx.DefaultPosition,style=wx.DEFAULT_DIALOG_STYLE) 5067 panel = wx.Panel(self) 5068 mainSizer = wx.BoxSizer(wx.VERTICAL) 5069 mainSizer.Add((10,10),1) 5070 topLabl = wx.StaticText(panel,wx.ID_ANY,title) 5071 mainSizer.Add(topLabl,0,wx.ALIGN_CENTER_VERTICAL|wx.CENTER,10) 5072 self.ChItems = [] 5073 for choice,lbl in zip(choicelist,headinglist): 5074 mainSizer.Add((10,10),1) 5075 self.chosen.append(0) 5076 topLabl = wx.StaticText(panel,wx.ID_ANY,' '+lbl) 5077 mainSizer.Add(topLabl,0,wx.ALIGN_LEFT,10) 5078 self.ChItems.append(wx.Choice(self, wx.ID_ANY, (100, 50), choices = choice)) 5079 mainSizer.Add(self.ChItems[-1],0,wx.ALIGN_CENTER,10) 5080 5081 OkBtn = wx.Button(panel,-1,"Ok") 5082 OkBtn.Bind(wx.EVT_BUTTON, self.OnOk) 5083 cancelBtn = wx.Button(panel,-1,"Cancel") 5084 cancelBtn.Bind(wx.EVT_BUTTON, self.OnCancel) 5085 btnSizer = wx.BoxSizer(wx.HORIZONTAL) 5086 btnSizer.Add((20,20),1) 5087 btnSizer.Add(OkBtn) 5088 btnSizer.Add((20,20),1) 5089 btnSizer.Add(cancelBtn) 5090 btnSizer.Add((20,20),1) 5091 mainSizer.Add(btnSizer,0,wx.EXPAND|wx.BOTTOM|wx.TOP, 10) 5092 panel.SetSizer(mainSizer) 5093 panel.Fit() 5094 self.Fit() 5095 5096 def OnOk(self,event): 5097 parent = self.GetParent() 5098 if parent is not None: parent.Raise() 5099 # save the results from the choice widgets 5100 self.chosen = [] 5101 for w in self.ChItems: 5102 self.chosen.append(w.GetSelection()) 5103 self.EndModal(wx.ID_OK) 5104 5105 def OnCancel(self,event): 5106 parent = self.GetParent() 5107 if parent is not None: parent.Raise() 5108 self.chosen = [] 5109 self.EndModal(wx.ID_CANCEL) 5110 5045 5111 def MultipleChoicesSelector(choicelist, headinglist, ParentFrame=None, **kwargs): 5046 5112 '''A modal dialog that offers a series of choices, each with a title and a wx.Choice … … 5157 5223 except ImportError: # no config.py file yet 5158 5224 savefile = os.path.join(GSASIIpath.path2GSAS2,'config.py') 5159 except Exception as err: # import failed5225 except Exception: # import failed 5160 5226 # find the bad file, save it in a new name and prepare to overwrite it 5161 5227 for p in sys.path: … … 6276 6342 else: 6277 6343 G2fil.G2Print("Warning: {} Reader failed to read {}" 6278 .format(rd.formatName,f ilename))6344 .format(rd.formatName,f)) 6279 6345 Iparm1, Iparm2 = G2sc.load_iprms(Settings['instfile'],rd) 6280 6346 if 'phoenix' in wx.version(): … … 6435 6501 else: 6436 6502 G2fil.G2Print("Warning: {} Reader failed to read {}" 6437 .format(rd.formatName,f ilename))6503 .format(rd.formatName,f)) 6438 6504 if 'phoenix' in wx.version(): 6439 6505 HistName = 'PDF '+rd.idstring … … 6728 6794 # app.MainLoop() 6729 6795 # print(td) 6730 6796 choicelist=[ ('a','b','c'), ('test1','test2'),('no choice',)] 6797 headinglist = [ 'select a, b or c', 'select 1 of 2', 'No option here'] 6798 dlg = MultipleChoicesDialog(choicelist,headinglist,parent=frm) 6799 if dlg.ShowModal() == wx.ID_OK: 6800 print(dlg.chosen) 6801 print(MultipleChoicesSelector(choicelist,headinglist,frm)) 6731 6802 pnl = wx.Panel(frm) 6732 6803 valArr = {'k':1.0}
Note: See TracChangeset
for help on using the changeset viewer.