Changeset 4899
- Timestamp:
- Apr 28, 2021 12:50:11 PM (22 months ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIctrlGUI.py
r4897 r4899 2599 2599 if event: event.Skip() 2600 2600 Obj = event.GetEventObject() 2601 f ormat = Indx[Obj][-1]2602 if type(f ormat) is list:2603 id,idl,limits = Indx[Obj][:3]2604 self.values[ id][idl] = Obj.GetValue()2605 elif 'bool' in f ormat:2601 fmt = Indx[Obj][-1] 2602 if type(fmt) is list: 2603 tid,idl,limits = Indx[Obj][:3] 2604 self.values[tid][idl] = Obj.GetValue() 2605 elif 'bool' in fmt: 2606 2606 self.values[Indx[Obj][0]] = Obj.GetValue() 2607 elif 'str' in f ormat:2608 id,limits = Indx[Obj][:2]2607 elif 'str' in fmt: 2608 tid,limits = Indx[Obj][:2] 2609 2609 try: 2610 2610 val = Obj.GetValue() … … 2612 2612 raise ValueError 2613 2613 except ValueError: 2614 val = self.values[ id]2615 self.values[ id] = val2614 val = self.values[tid] 2615 self.values[tid] = val 2616 2616 Obj.SetValue('%s'%(val)) 2617 elif 'choice' in f ormat:2617 elif 'choice' in fmt: 2618 2618 self.values[Indx[Obj][0]] = Obj.GetValue() 2619 else:2620 2621 try:2622 val = float(Obj.GetValue())2623 if val < limits[0] or val > limits[1]:2624 raise ValueError2625 except ValueError:2626 val = self.values[id]2627 self.values[id] = val2628 Obj.SetValue(format%(val))2619 # else: 2620 # tid,limits = Indx[Obj][:2] 2621 # try: 2622 # val = float(Obj.GetValue()) 2623 # if val < limits[0] or val > limits[1]: 2624 # raise ValueError 2625 # except ValueError: 2626 # val = self.values[tid] 2627 # self.values[tid] = val 2628 # Obj.SetValue(fmt%(val)) 2629 2629 2630 2630 Indx = {} … … 2633 2633 mainSizer = wx.BoxSizer(wx.VERTICAL) 2634 2634 lineSizer = wx.FlexGridSizer(0,2,5,5) 2635 for id,[prompt,value,limits,format] in enumerate(zip(self.prompts,self.values,self.limits,self.formats)):2635 for tid,[prompt,value,limits,fmt] in enumerate(zip(self.prompts,self.values,self.limits,self.formats)): 2636 2636 lineSizer.Add(wx.StaticText(self.panel,label=prompt),0,wx.ALIGN_CENTER) 2637 if type(f ormat) is list: #let's assume these are 'choice' for now2637 if type(fmt) is list: #let's assume these are 'choice' for now 2638 2638 valItem = wx.BoxSizer(wx.HORIZONTAL) 2639 for idl,item in enumerate(f ormat):2639 for idl,item in enumerate(fmt): 2640 2640 listItem = wx.ComboBox(self.panel,value=limits[idl][0],choices=limits[idl],style=wx.CB_READONLY|wx.CB_DROPDOWN) 2641 2641 listItem.Bind(wx.EVT_COMBOBOX,OnValItem) 2642 2642 valItem.Add(listItem,0,WACV) 2643 Indx[listItem] = [ id,idl,limits,format]2644 elif 'bool' in f ormat:2643 Indx[listItem] = [tid,idl,limits,fmt] 2644 elif 'bool' in fmt: 2645 2645 valItem = wx.CheckBox(self.panel,label='') 2646 2646 valItem.Bind(wx.EVT_CHECKBOX,OnValItem) 2647 2647 valItem.SetValue(value) 2648 elif 'str' in f ormat:2648 elif 'str' in fmt: 2649 2649 valItem = wx.TextCtrl(self.panel,value='%s'%(value),style=wx.TE_PROCESS_ENTER) 2650 2650 valItem.Bind(wx.EVT_TEXT_ENTER,OnValItem) 2651 2651 valItem.Bind(wx.EVT_KILL_FOCUS,OnValItem) 2652 2652 valItem.SetValue('%s'%value) 2653 elif 'choice' in f ormat:2653 elif 'choice' in fmt: 2654 2654 valItem = wx.ComboBox(self.panel,value=limits[0],choices=limits,style=wx.CB_READONLY|wx.CB_DROPDOWN) 2655 2655 valItem.Bind(wx.EVT_COMBOBOX,OnValItem) 2656 2656 else: 2657 valItem = ValidatedTxtCtrl(self.panel,self.values,id,nDig=(10,4)) 2658 # valItem = wx.TextCtrl(self.panel,value=format%(value),style=wx.TE_PROCESS_ENTER) 2657 if '%' in fmt: 2658 if 'd' in fmt: 2659 nDig = None 2660 else: 2661 sfmt = fmt[1:].split('.') 2662 if not sfmt[0]: sfmt[0] = '10' 2663 nDig = (int(sfmt[0]),int(sfmt[1][:-1]),sfmt[1][-1]) 2664 valItem = ValidatedTxtCtrl(self.panel,self.values,tid,nDig=nDig,xmin=limits[0],xmax=limits[1]) 2665 # valItem = wx.TextCtrl(self.panel,value=fmt%(value),style=wx.TE_PROCESS_ENTER) 2659 2666 # valItem.Bind(wx.EVT_TEXT_ENTER,OnValItem) 2660 2667 # valItem.Bind(wx.EVT_KILL_FOCUS,OnValItem) 2661 Indx[valItem] = [ id,limits,format]2668 Indx[valItem] = [tid,limits,fmt] 2662 2669 lineSizer.Add(valItem,0,wx.ALIGN_CENTER) 2663 2670 mainSizer.Add(lineSizer) -
trunk/GSASIIphsGUI.py
r4881 r4899 12471 12471 prompts=['delt-X (-1. to 1.)','delt-Y (-1. to 1.)', 12472 12472 'delt-Z (-1. to 1.)'],values=[0.,0.,0.,], 12473 limits=[[-1.,1.],[-1.,1.],[-1.,1.]],formats=['%. 4f','%.4f','%.4f'])12473 limits=[[-1.,1.],[-1.,1.],[-1.,1.]],formats=['%.6f','%.6f','%.6f']) 12474 12474 12475 12475 if dlg.ShowModal() == wx.ID_OK:
Note: See TracChangeset
for help on using the changeset viewer.