Пример #1
0
    def _init_ui(self):
        button3 = MPushButton(text='Normal Message').primary()
        button4 = MPushButton(text='Success Message').success()
        button5 = MPushButton(text='Warning Message').warning()
        button6 = MPushButton(text='Error Message').danger()
        button3.clicked.connect(
            functools.partial(self.slot_show_message, MMessage.info,
                              {'text': u'这是一条普通提示'}))
        button4.clicked.connect(
            functools.partial(self.slot_show_message, MMessage.success,
                              {'text': u'恭喜你,成功啦!'}))
        button5.clicked.connect(
            functools.partial(self.slot_show_message, MMessage.warning,
                              {'text': u'我警告你哦!'}))
        button6.clicked.connect(
            functools.partial(self.slot_show_message, MMessage.error,
                              {'text': u'失败了!'}))

        sub_lay1 = QHBoxLayout()
        sub_lay1.addWidget(button3)
        sub_lay1.addWidget(button4)
        sub_lay1.addWidget(button5)
        sub_lay1.addWidget(button6)

        button_duration = MPushButton(text='show 5s Message')
        button_duration.clicked.connect(
            functools.partial(self.slot_show_message, MMessage.info, {
                'text': u'该条消息将显示5秒后关闭',
                'duration': 5
            }))
        button_closable = MPushButton(text='closable Message')
        button_closable.clicked.connect(
            functools.partial(self.slot_show_message, MMessage.info, {
                'text': u'可手动关闭提示',
                'closable': True
            }))
        main_lay = QVBoxLayout()
        main_lay.addWidget(MDivider('different type'))
        main_lay.addLayout(sub_lay1)
        main_lay.addWidget(MLabel(u'不同的提示状态:普通、成功、警告、错误。默认2秒后消失'))
        main_lay.addWidget(MDivider('set duration'))
        main_lay.addWidget(button_duration)
        main_lay.addWidget(MLabel(u'自定义时长,config中设置duration值,单位为秒'))

        main_lay.addWidget(MDivider('set closable'))
        main_lay.addWidget(button_closable)
        main_lay.addWidget(MLabel(u'设置是否可关闭,config中设置closable 为 True'))

        button_grp = MPushButtonGroup()
        button_grp.set_button_list([
            {
                'text':
                'set duration to 1s',
                'clicked':
                functools.partial(self.slot_set_config, MMessage.config,
                                  {'duration': 1})
            },
            {
                'text':
                'set duration to 10s',
                'clicked':
                functools.partial(self.slot_set_config, MMessage.config,
                                  {'duration': 10})
            },
            {
                'text':
                'set top to 5',
                'clicked':
                functools.partial(self.slot_set_config, MMessage.config,
                                  {'top': 5})
            },
            {
                'text':
                'set top to 50',
                'clicked':
                functools.partial(self.slot_set_config, MMessage.config,
                                  {'top': 50})
            },
        ])
        loading_button = MPushButton('Display a loading indicator')
        loading_button.clicked.connect(self.slot_show_loading)
        main_lay.addWidget(MDivider('set global setting'))
        main_lay.addWidget(button_grp)
        main_lay.addWidget(
            MLabel(u'全局设置默认duration(默认2秒);top(离parent顶端的距离,默认24px)'))
        main_lay.addWidget(loading_button)

        main_lay.addStretch()
        self.setLayout(main_lay)
Пример #2
0
    def _init_ui(self):
        title_lay = QGridLayout()
        title_lay.addWidget(MLabel(u'一级标题').h1(), 0, 0)
        title_lay.addWidget(MLabel(u'二级标题').h2(), 1, 0)
        title_lay.addWidget(MLabel(u'三级标题').h3(), 2, 0)
        title_lay.addWidget(MLabel(u'四级标题').h4(), 3, 0)
        title_lay.addWidget(MLabel('h1 Level').h1(), 0, 1)
        title_lay.addWidget(MLabel('h2 Level').h2(), 1, 1)
        title_lay.addWidget(MLabel('h3 Level').h3(), 2, 1)
        title_lay.addWidget(MLabel('h4 Level').h4(), 3, 1)

        text_type_lay = QHBoxLayout()
        text_type_lay.addWidget(MLabel('MLabel: Normal'))
        text_type_lay.addWidget(MLabel('MLabel: Secondary').secondary())
        text_type_lay.addWidget(MLabel('MLabel: Warning').warning())
        text_type_lay.addWidget(MLabel('MLabel: Danger').danger())
        disable_text = MLabel('MLabel: Disabled')
        disable_text.setEnabled(False)
        text_type_lay.addWidget(disable_text)

        text_attr_lay = QHBoxLayout()
        text_attr_lay.addWidget(MLabel('MLabel: Mark').mark())
        text_attr_lay.addWidget(MLabel('MLabel: Code').code())
        text_attr_lay.addWidget(MLabel('MLabel: Underline').underline())
        text_attr_lay.addWidget(MLabel('MLabel: Delete').delete())
        text_attr_lay.addWidget(MLabel('MLabel: Strong').strong())

        text_mix_lay = QHBoxLayout()
        text_mix_lay.addWidget(
            MLabel('MLabel: Strong & Underline').strong().underline())
        text_mix_lay.addWidget(
            MLabel('MLabel: Danger & Delete').danger().delete())
        text_mix_lay.addWidget(
            MLabel('MLabel: Warning & Strong').warning().strong())
        text_mix_lay.addWidget(MLabel('MLabel: H4 & Mark').h4().mark())

        data_bind_lay = QHBoxLayout()
        data_bind_label = MLabel()
        button = MPushButton(text='Random An Animal').primary()
        button.clicked.connect(self.slot_change_text)
        data_bind_lay.addWidget(data_bind_label)
        data_bind_lay.addWidget(button)
        data_bind_lay.addStretch()
        self.register_field('show_text', 'Guess')
        self.bind('show_text', data_bind_label, 'text')

        lay_elide = QVBoxLayout()
        label_none = MLabel('This is a elide NONE mode label. '
                            'Ellipsis should NOT appear in the text.')
        label_left = MLabel(
            'This is a elide LEFT mode label. '
            'The ellipsis should appear at the beginning of the text. '
            'xiao mao xiao gou xiao ci wei')
        label_left.set_elide_mode(Qt.ElideLeft)
        label_middle = MLabel(
            'This is a elide MIDDLE mode label. '
            'The ellipsis should appear in the middle of the text. '
            'xiao mao xiao gou xiao ci wei')
        label_middle.set_elide_mode(Qt.ElideMiddle)
        label_right = MLabel()
        label_right.setText(
            'This is a elide RIGHT mode label. '
            'The ellipsis should appear at the end of the text. '
            'Some text to fill the line bala bala bala.')
        label_right.set_elide_mode(Qt.ElideRight)
        lay_elide.addWidget(label_none)
        lay_elide.addWidget(label_left)
        lay_elide.addWidget(label_middle)
        lay_elide.addWidget(label_right)

        main_lay = QVBoxLayout()
        main_lay.addWidget(MDivider('different level'))
        main_lay.addLayout(title_lay)
        main_lay.addWidget(MDivider('different type'))
        main_lay.addLayout(text_type_lay)
        main_lay.addWidget(MDivider('different property'))
        main_lay.addLayout(text_attr_lay)
        main_lay.addWidget(MDivider('mix'))
        main_lay.addLayout(text_mix_lay)

        # main_lay.addWidget(MDivider('data bind'))
        # main_lay.addLayout(data_bind_lay)
        main_lay.addWidget(MDivider('elide mode'))
        main_lay.addLayout(lay_elide)
        main_lay.addStretch()
        self.setLayout(main_lay)
Пример #3
0
    def __init__(self, parent=None):
        super(MTagTest, self).__init__(parent)
        self.setWindowTitle('Examples for MTag')
        self.default_lay = MFlowLayout()
        self.default_lay.addWidget(MTag(text='Tag 1'))
        self.default_lay.addWidget(MTag(text='Closeable Tag').closeable())
        add_tag = MNewTag('New Tag')
        add_tag.sig_add_tag.connect(self.slot_add_tag)
        self.default_lay.addWidget(add_tag)

        color_lay = MFlowLayout()
        for text, color in [
            ('magenta', dayu_theme.magenta),
            ('red', dayu_theme.red),
            ('volcano', dayu_theme.volcano),
            ('orange', dayu_theme.orange),
            ('gold', dayu_theme.gold),
            ('lime', dayu_theme.lime),
            ('green', dayu_theme.green),
            ('cyan', dayu_theme.cyan),
            ('blue', dayu_theme.blue),
            ('geekblue', dayu_theme.geekblue),
            ('purple', dayu_theme.purple),
        ]:
            tag = MTag(text=text).closeable()
            tag.set_dayu_color(color)
            tag.sig_closed.connect(
                functools.partial(MMessage.success, 'Delete "{}"'.format(text),
                                  self))
            color_lay.addWidget(tag)

        no_border_lay = MFlowLayout()
        for text, color in [
            ('red', dayu_theme.red),
            ('green', dayu_theme.green),
            ('blue', dayu_theme.blue),
            ('geekblue', dayu_theme.geekblue),
            ('volcano', dayu_theme.volcano),
            ('orange', dayu_theme.orange),
            ('purple', dayu_theme.purple),
            ('lime', dayu_theme.lime),
        ]:
            tag = MTag(text=text).border(False).clickable()
            tag.set_dayu_color(color)
            tag.sig_clicked.connect(
                functools.partial(MMessage.success, 'Click "{}"'.format(text),
                                  self))
            no_border_lay.addWidget(tag)

        label = MLabel('Categories:')
        topic_lay = QHBoxLayout()
        topic_lay.addWidget(label)
        for i in ['Movies', 'Books', 'Music', 'Sports']:
            topic_lay.addWidget(MCheckableTag(text=i))
        topic_lay.addStretch()
        main_lay = QVBoxLayout()
        main_lay.addWidget(MDivider('Normal'))
        main_lay.addLayout(self.default_lay)
        main_lay.addWidget(MDivider('Border'))
        main_lay.addLayout(color_lay)
        main_lay.addWidget(MDivider('No Border & Click'))
        main_lay.addLayout(no_border_lay)
        main_lay.addWidget(MDivider('Checkable'))
        main_lay.addLayout(topic_lay)
        main_lay.addStretch()
        self.setLayout(main_lay)