Changeset 4899 for trunk


Ignore:
Timestamp:
Apr 28, 2021 12:50:11 PM (5 months ago)
Author:
vondreele
Message:

use ValidatedTxtCtrl? in MultiDataDialog?
Let ValidatedTxtCtrl? use '%10.4f' style formats
change format to fmt & id to tid in MultiDataDialog?; avoid use of reserved words

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIctrlGUI.py

    r4897 r4899  
    25992599            if event: event.Skip()
    26002600            Obj = event.GetEventObject()
    2601             format = Indx[Obj][-1]
    2602             if type(format) is list:
    2603                 id,idl,limits = Indx[Obj][:3]
    2604                 self.values[id][idl] = Obj.GetValue()
    2605             elif 'bool' in format:
     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:
    26062606                self.values[Indx[Obj][0]] = Obj.GetValue()
    2607             elif 'str' in format:
    2608                 id,limits = Indx[Obj][:2]
     2607            elif 'str' in fmt:
     2608                tid,limits = Indx[Obj][:2]
    26092609                try:
    26102610                    val = Obj.GetValue()
     
    26122612                        raise ValueError
    26132613                except ValueError:
    2614                     val = self.values[id]
    2615                 self.values[id] = val
     2614                    val = self.values[tid]
     2615                self.values[tid] = val
    26162616                Obj.SetValue('%s'%(val))
    2617             elif 'choice' in format:
     2617            elif 'choice' in fmt:
    26182618                self.values[Indx[Obj][0]] = Obj.GetValue()
    2619             else:
    2620                 id,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[id]
    2627                 self.values[id] = val
    2628                 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))
    26292629           
    26302630        Indx = {}
     
    26332633        mainSizer = wx.BoxSizer(wx.VERTICAL)
    26342634        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)):
    26362636            lineSizer.Add(wx.StaticText(self.panel,label=prompt),0,wx.ALIGN_CENTER)
    2637             if type(format) is list:  #let's assume these are 'choice' for now
     2637            if type(fmt) is list:  #let's assume these are 'choice' for now
    26382638                valItem = wx.BoxSizer(wx.HORIZONTAL)
    2639                 for idl,item in enumerate(format):
     2639                for idl,item in enumerate(fmt):
    26402640                    listItem = wx.ComboBox(self.panel,value=limits[idl][0],choices=limits[idl],style=wx.CB_READONLY|wx.CB_DROPDOWN)
    26412641                    listItem.Bind(wx.EVT_COMBOBOX,OnValItem)
    26422642                    valItem.Add(listItem,0,WACV)
    2643                     Indx[listItem] = [id,idl,limits,format]
    2644             elif 'bool' in format:
     2643                    Indx[listItem] = [tid,idl,limits,fmt]
     2644            elif 'bool' in fmt:
    26452645                valItem = wx.CheckBox(self.panel,label='')
    26462646                valItem.Bind(wx.EVT_CHECKBOX,OnValItem)
    26472647                valItem.SetValue(value)
    2648             elif 'str' in format:
     2648            elif 'str' in fmt:
    26492649                valItem = wx.TextCtrl(self.panel,value='%s'%(value),style=wx.TE_PROCESS_ENTER)
    26502650                valItem.Bind(wx.EVT_TEXT_ENTER,OnValItem)
    26512651                valItem.Bind(wx.EVT_KILL_FOCUS,OnValItem)
    26522652                valItem.SetValue('%s'%value)
    2653             elif 'choice' in format:
     2653            elif 'choice' in fmt:
    26542654                valItem = wx.ComboBox(self.panel,value=limits[0],choices=limits,style=wx.CB_READONLY|wx.CB_DROPDOWN)
    26552655                valItem.Bind(wx.EVT_COMBOBOX,OnValItem)
    26562656            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)
    26592666                # valItem.Bind(wx.EVT_TEXT_ENTER,OnValItem)
    26602667                # valItem.Bind(wx.EVT_KILL_FOCUS,OnValItem)
    2661             Indx[valItem] = [id,limits,format]
     2668            Indx[valItem] = [tid,limits,fmt]
    26622669            lineSizer.Add(valItem,0,wx.ALIGN_CENTER)
    26632670        mainSizer.Add(lineSizer)
  • trunk/GSASIIphsGUI.py

    r4881 r4899  
    1247112471                prompts=['delt-X (-1. to 1.)','delt-Y (-1. to 1.)',
    1247212472                         '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'])
    1247412474           
    1247512475            if dlg.ShowModal() == wx.ID_OK:
Note: See TracChangeset for help on using the changeset viewer.