def run(self, para=None): if para['name'] == 'All': for i in ImageManager.get_titles(): WindowsManager.get(i).close() else: print(WindowsManager.get(para['name'])) WindowsManager.get(para['name']).close()
def on_items(self, event): items = ['No Background Image'] + ImageManager.get_titles() self.com_back.SetItems(items) if self.com_back.GetValue() in items: self.com_back.Select(items.index(self.com_back.GetValue())) else: self.com_back.Select(0)
def load(self, ips): titles = ImageManager.get_titles() self.para['img1'] = titles[0] self.para['img2'] = titles[0] Match.view = [(list, 'img1', titles, str, 'template', ''), (list, 'img2', titles, str, 'object', '')] return True
def on_back(self, event): self.com_back.SetItems(['None'] + ImageManager.get_titles()) cur = WindowsManager.get() if not cur is None: cur = cur.back if not cur is None: cur = cur.title self.com_back.SetValue(str(cur)) modes = ['set', 'max', 'min', 'msk', 0.2, 0.4, 0.5, 0.6, 0.8] ips = ImageManager.get() if ips is None: self.com_mode.Select(0) else: self.com_mode.Select(modes.index(ips.chan_mode))
def load(self, ips): titles = ImageManager.get_titles() self.para['img1'] = titles[0] self.para['img2'] = titles[0] Match.view = [ ('lab', None, '========= two image in 8-bit ========='), (list, 'img1', titles, str, 'image1', ''), (list, 'img2', titles, str, 'image2', ''), ('lab', None, ''), ('lab', None, '====== parameter about the surf ======'), (int, 'oct', (0, 5), 0, 'octaves', ''), (int, 'int', (0, 5), 0, 'intervals', ''), (int, 'thr', (500, 2000), 0, 'threshold', '1-100'), (bool, 'ext', 'extended'), (bool, 'upright', 'upright'), ('lab', None, ''), ('lab', None, '====== how to match and display ======'), (list, 'trans', ['None', 'Affine', 'H**o'], str, 'transform', ''), (int, 'std', (1, 5), 0, 'Std', 'torlerance'), (list, 'style', ['Blue/Yellow', 'Hide'], str, 'Aspect', 'color'), (bool, 'log', 'show log') ] return True
def load(self): ImageKiller.para = {'name': 'All'} titles = ['All'] + ImageManager.get_titles() ImageKiller.view = [(list, 'name', titles, str, 'Name', 'selected')] return True
def __init__(self, parent, title, tree, key): wx.Dialog.__init__(self, parent, -1, title, style=wx.DEFAULT_DIALOG_STYLE, size=wx.Size((300, 480))) # wx.Panel.__init__(self, parent, wx.ID_ANY) self.panel = panel = wx.Panel(self, wx.ID_ANY) topsizer = wx.BoxSizer(wx.VERTICAL) # Difference between using PropertyGridManager vs PropertyGrid is that # the manager supports multiple pages and a description box. self.pg = pg = wxpg.PropertyGridManager( panel, style=wxpg.PG_SPLITTER_AUTO_CENTER) # Show help as tooltips pg.SetExtraStyle(wxpg.PG_EX_HELP_AS_TOOLTIPS) pg.Bind(wxpg.EVT_PG_CHANGED, self.OnPropGridChange) pg.Bind(wxpg.EVT_PG_SELECTED, self.OnPropGridSelect) pg.AddPage('Page 1') self.key = key for page in tree: pg.Append(wxpg.PropertyCategory(page[0])) for item in page[1]: v = item[1] if v[0] == 'int': pg.Append(wxpg.IntProperty(v[1], value=int(v[2]) or 0)) if v[0] == 'float': pg.Append(wxpg.FloatProperty(v[1], value=float(v[2]) or 0)) if v[0] == 'str': pg.Append(wxpg.StringProperty(v[1], value=v[2] or '')) if v[0] == 'txt': pg.Append(wxpg.LongStringProperty(v[1], value=v[2] or '')) if v[0] == 'bool': pg.Append(wxpg.BoolProperty(v[1])) if v[0] == 'date': pg.Append(wxpg.DateProperty(v[1], value=wx.DateTime.Now())) if v[0] == 'list': pg.Append( wxpg.EnumProperty( v[1], v[1], [i.strip() for i in v[2][1:-1].split(',')])) if v[0] == 'img': pg.Append( wxpg.EnumProperty(v[1], v[1], ImageManager.get_titles())) if v[0] == 'tab': pg.Append( wxpg.EnumProperty(v[1], v[1], TableManager.get_titles())) topsizer.Add(pg, 1, wx.EXPAND) self.txt_info = wx.TextCtrl(self, wx.ID_ANY, 'information', wx.DefaultPosition, wx.Size(80, 80), wx.TE_MULTILINE | wx.TRANSPARENT_WINDOW) topsizer.Add(self.txt_info, 0, wx.EXPAND | wx.ALL, 0) rowsizer = wx.BoxSizer(wx.HORIZONTAL) but = wx.Button(panel, wx.ID_OK, "OK") rowsizer.Add(but, 1) #but.Bind( wx.EVT_BUTTON, self.OnGetPropertyValues ) but = wx.Button(panel, wx.ID_CANCEL, "Cancel") rowsizer.Add(but, 1) topsizer.Add(rowsizer, 0, wx.EXPAND) panel.SetSizer(topsizer) topsizer.SetSizeHints(panel) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(panel, 1, wx.EXPAND) self.SetSizer(sizer) self.SetAutoLayout(True)