gui.py 文件源码

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

项目:LalkaChat 作者: DeForce 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号