python类GridLayout()的实例源码

bdialog.py 文件源码 项目:kdialog 作者: HeaTTheatR 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def __init__(self, **kvargs):
        super(BDialog, self).__init__(
            size_hint_x=None, size_hint_y=None, **kvargs
        )
        box_buttons = GridLayout(
            cols=1, padding=5, spacing=5, size_hint_y=None
        )
        box_buttons.bind(minimum_height=box_buttons.setter('height'))
        scroll = ScrollView()

        # ??? ??? ?????? ????????? - (canvas GridLayout).
        with box_buttons.canvas:
            Color(rgba=self.background_grid)
            self.canvas_for_box_content = \
                Rectangle(
                    pos=(5, 5), size=(box_buttons.width, box_buttons.height)
                )
            box_buttons.bind(
                size=self._update_canvas_size, pos=self._update_canvas_size
            )

        for list_button in self.button_list:
            if not list_button[1]:
                image = 'atlas://data/images/defaulttheme/button'
            else:
                image = list_button[1]

            button = Button(
                text=list_button[0], size_hint_y=None,
                height=self.dp(self.height_button),
                background_normal=image, id=list_button[0],
                background_down=self.background_image_shadows[0],
                background_color=choice(self.background_color_buttons)
            )
            if callable(self.events_callback):
                button.bind(
                    on_press=self.events_callback, on_release=self.dismiss
                )
            box_buttons.add_widget(button)

        scroll.add_widget(box_buttons)
        self.content = scroll
        self.width = self.dp(int(Window.size[0] // self.hint_x))


问题


面经


文章

微信
公众号

扫码关注公众号