def create_static_box(self, **kwargs):
panel = kwargs.get('panel')
value = kwargs.get('value')
gui = kwargs.get('gui')
key = kwargs.get('key')
static_box = wx.StaticBox(panel, label=translate_key(MODULE_KEY.join(key)))
static_sizer = wx.StaticBoxSizer(static_box, wx.VERTICAL)
instatic_sizer = wx.BoxSizer(wx.VERTICAL)
spacer_size = 7
max_text_size = 0
text_ctrls = []
log.debug("Working on {0}".format(MODULE_KEY.join(key)))
spacer = False
hidden_items = gui.get('hidden', [])
for item, value in value.items():
if item in hidden_items and not self.show_hidden:
continue
view = gui.get(item, {}).get('view', type(value))
if view in self.value_map.keys():
fnction = self.value_map[view]
elif callable(value):
fnction = self.value_map['button']
else:
return
item_dict = fnction['function'](panel=static_box, item=item, value=value, key=key + [item],
bind=fnction['bind'], gui=gui.get(item, {}), from_sb=True)
if 'text_size' in item_dict:
if max_text_size < item_dict.get('text_size'):
max_text_size = item_dict['text_size']
text_ctrls.append(item_dict['text_ctrl'])
spacer = True if not spacer else instatic_sizer.AddSpacer(spacer_size)
instatic_sizer.Add(item_dict['item'], 0, wx.EXPAND, 5)
if max_text_size:
for ctrl in text_ctrls:
ctrl.SetMinSize((max_text_size + 50, ctrl.GetSize()[1]))
item_count = instatic_sizer.GetItemCount()
if not item_count:
static_sizer.Destroy()
return wx.BoxSizer(wx.VERTICAL)
static_sizer.Add(instatic_sizer, 0, wx.EXPAND | wx.ALL, 5)
return static_sizer
评论列表
文章目录