def create_layout(self):
self.main_grid = wx.BoxSizer(wx.HORIZONTAL)
style = wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT | wx.TR_TWIST_BUTTONS | wx.TR_NO_LINES
# style = wx.TR_HAS_BUTTONS | wx.TR_SINGLE | wx.TR_HIDE_ROOT
image_list = wx.ImageList(16, 16)
tree_ctrl_id = id_renew('settings.tree', update=True)
tree_ctrl = wx.TreeCtrl(self, id=tree_ctrl_id, style=style)
root_key = MODULE_KEY.join(['settings', 'tree', 'root'])
root_node = tree_ctrl.AddRoot(translate_key(root_key))
for cat_name, category in self.categories.iteritems():
item_key = MODULE_KEY.join(['settings', cat_name])
item_data = wx.TreeItemData()
item_data.SetData(item_key)
item_node = tree_ctrl.AppendItem(root_node, translate_key(item_key), data=item_data)
for module_name, module_settings in category.iteritems():
if not module_name == cat_name:
if module_settings.get('gui', {}).get('icon'):
icon = wx.Bitmap(module_settings['gui']['icon'])
self.tree_ctrl_image_dict[module_name] = image_list.GetImageCount()
image_list.Add(icon)
else:
self.tree_ctrl_image_dict[module_name] = -1
f_item_key = MODULE_KEY.join([item_key, module_name])
f_item_data = wx.TreeItemData()
f_item_data.SetData(f_item_key)
tree_ctrl.AppendItem(item_node, translate_key(module_name),
image=self.tree_ctrl_image_dict[module_name],
data=f_item_data)
if self.show_icons:
tree_ctrl.AssignImageList(image_list)
tree_ctrl.ExpandAll()
self.tree_ctrl = tree_ctrl
self.Bind(wx.EVT_TREE_SEL_CHANGED, self.on_tree_ctrl_changed, id=tree_ctrl_id)
self.main_grid.Add(tree_ctrl, 7, wx.EXPAND | wx.ALL, 7)
content_page_id = id_renew(MODULE_KEY.join(['settings', 'content']))
self.content_page = wx.Panel(self, id=content_page_id)
self.main_grid.Add(self.content_page, 15, wx.EXPAND)
self.main_grid.Layout()
self.SetSizer(self.main_grid)
tree_ctrl.SelectItem(tree_ctrl.GetFirstChild(root_node)[0])
评论列表
文章目录