def __init__(self, parent, group, on_ok=None): self.group = group self.on_ok = on_ok wx.Frame.__init__(self, None, -1, 'Edit Array Names', style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL) self.SetFont(Font(10)) sizer = wx.GridBagSizer(4, 4) self.SetMinSize((600, 600)) self.wids = {} cind = SimpleText(self, label='Column') cold = SimpleText(self, label='Current Name') cnew = SimpleText(self, label='Enter New Name') cret = SimpleText(self, label=' Result ', size=(150, -1)) cinfo = SimpleText(self, label=' Data Range') ir = 0 sizer.Add(cind, (ir, 0), (1, 1), LCEN, 3) sizer.Add(cold, (ir, 1), (1, 1), LCEN, 3) sizer.Add(cnew, (ir, 2), (1, 1), LCEN, 3) sizer.Add(cret, (ir, 3), (1, 1), LCEN, 3) sizer.Add(cinfo, (ir, 4), (1, 1), LCEN, 3) for i, name in enumerate(group.array_labels): ir += 1 cind = SimpleText(self, label=' %i ' % (i + 1)) cold = SimpleText(self, label=' %s ' % name) cret = SimpleText(self, label=fix_varname(name), size=(150, -1)) cnew = wx.TextCtrl(self, value=name, size=(150, -1)) cnew.Bind(wx.EVT_KILL_FOCUS, partial(self.update, index=i)) cnew.Bind(wx.EVT_CHAR, partial(self.update_char, index=i)) cnew.Bind(wx.EVT_TEXT_ENTER, partial(self.update, index=i)) # cnew.Bind(wx.EVT_TEXT, partial(self.update3, index=i)) arr = group.data[i, :] info_str = " [ %8g : %8g ] " % (arr.min(), arr.max()) cinfo = SimpleText(self, label=info_str) self.wids[i] = cnew self.wids["ret_%i" % i] = cret sizer.Add(cind, (ir, 0), (1, 1), LCEN, 3) sizer.Add(cold, (ir, 1), (1, 1), LCEN, 3) sizer.Add(cnew, (ir, 2), (1, 1), LCEN, 3) sizer.Add(cret, (ir, 3), (1, 1), LCEN, 3) sizer.Add(cinfo, (ir, 4), (1, 1), LCEN, 3) sizer.Add(Button(self, 'OK', action=self.onOK), (ir + 1, 1), (1, 2), LCEN, 3) pack(self, sizer) self.Show() self.Raise()
def __init__(self, parent, group, on_ok=None): self.parent = parent self.group = group self.on_ok = on_ok wx.Frame.__init__(self, None, -1, 'Edit Array Names', style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL) self.SetFont(Font(10)) sizer = wx.GridBagSizer(2, 2) panel = scrolled.ScrolledPanel(self) self.SetMinSize((675, 450)) self.wids = {} ir = 0 sizer.Add( Button(panel, 'Apply Changes', size=(200, -1), action=self.onOK), (0, 1), (1, 2), LEFT, 3) sizer.Add( Button(panel, 'Use Column Number', size=(200, -1), action=self.onColNumber), (0, 3), (1, 2), LEFT, 3) sizer.Add(HLine(panel, size=(550, 2)), (1, 1), (1, 5), LEFT, 3) cind = SimpleText(panel, label='Column') cold = SimpleText(panel, label='Current Name') cnew = SimpleText(panel, label='Enter New Name') cret = SimpleText(panel, label=' Result ', size=(150, -1)) cinfo = SimpleText(panel, label=' Data Range') cplot = SimpleText(panel, label=' Plot') ir = 2 sizer.Add(cind, (ir, 0), (1, 1), LEFT, 3) sizer.Add(cold, (ir, 1), (1, 1), LEFT, 3) sizer.Add(cnew, (ir, 2), (1, 1), LEFT, 3) sizer.Add(cret, (ir, 3), (1, 1), LEFT, 3) sizer.Add(cinfo, (ir, 4), (1, 1), LEFT, 3) sizer.Add(cplot, (ir, 5), (1, 1), LEFT, 3) for i, name in enumerate(group.array_labels): ir += 1 cind = SimpleText(panel, label=' %i ' % (i + 1)) cold = SimpleText(panel, label=' %s ' % name) cret = SimpleText(panel, label=fix_varname(name), size=(150, -1)) cnew = wx.TextCtrl(panel, value=name, size=(150, -1)) cnew.Bind(wx.EVT_KILL_FOCUS, partial(self.update, index=i)) cnew.Bind(wx.EVT_CHAR, partial(self.update_char, index=i)) cnew.Bind(wx.EVT_TEXT_ENTER, partial(self.update, index=i)) arr = group.data[i, :] info_str = " [ %8g : %8g ] " % (arr.min(), arr.max()) cinfo = SimpleText(panel, label=info_str) cplot = Button(panel, 'Plot', action=partial(self.onPlot, index=i)) self.wids["%d" % i] = cnew self.wids["ret_%d" % i] = cret sizer.Add(cind, (ir, 0), (1, 1), LEFT, 3) sizer.Add(cold, (ir, 1), (1, 1), LEFT, 3) sizer.Add(cnew, (ir, 2), (1, 1), LEFT, 3) sizer.Add(cret, (ir, 3), (1, 1), LEFT, 3) sizer.Add(cinfo, (ir, 4), (1, 1), LEFT, 3) sizer.Add(cplot, (ir, 5), (1, 1), LEFT, 3) pack(panel, sizer) panel.SetupScrolling() mainsizer = wx.BoxSizer(wx.VERTICAL) mainsizer.Add(panel, 1, wx.GROW | wx.ALL, 1) pack(self, mainsizer) self.Show() self.Raise()