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)
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)
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)