gui.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:LalkaChat 作者: DeForce 项目源码 文件源码
def create_page_items(self, page_sizer, panel, config, gui, key):
        page_sc_window = wx.ScrolledWindow(panel, id=id_renew(gui), style=wx.VSCROLL)
        page_sc_window.SetScrollbars(5, 5, 10, 10)
        sizer = wx.BoxSizer(wx.VERTICAL)
        joined_keys = MODULE_KEY.join(key)
        if 'redraw' in gui:
            for redraw_target, redraw_settings in gui['redraw'].items():
                if joined_keys not in self.redraw_map:
                    self.redraw_map[joined_keys] = {}
                self.redraw_map[joined_keys][redraw_target] = {
                    'key': None,
                    'item': None,
                    'redraw_type': None,
                    'redraw_trigger': redraw_settings['redraw_trigger'],
                    'redraw_target': redraw_target,
                    'get_config': redraw_settings['get_config'],
                    'get_gui': redraw_settings['get_gui'],
                    'sizer_parent': sizer,
                    'panel_parent': page_sc_window,
                    'all_settings': redraw_settings
                }
        for section_key, section_items in config.items():
            if section_key in SKIP_TAGS:
                continue

            view = gui.get(section_key, {}).get('view', type(section_items))
            if view in self.function_map.keys():
                data = self.function_map[view]
                gui_settings = gui.get(section_key, {}).copy()
                item_keys = key + [section_key]
                sizer_item = data['function'](
                    panel=page_sc_window, item=section_key, value=section_items, bind=data['bind'],
                    gui=gui_settings, key=item_keys, from_sb=False)
                if joined_keys in self.redraw_map.keys():
                    if section_key in self.redraw_map[joined_keys]:
                        self.redraw_map[joined_keys][section_key].update({
                            'bind_item': data,
                            'item': sizer_item,
                            'redraw_type': view,
                            'key': item_keys,
                        })

                sizer.Add(sizer_item, 0, wx.EXPAND)

        page_sc_window.SetSizer(sizer)
        page_sizer.Add(page_sc_window, 1, wx.EXPAND)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号