예제 #1
0
    def _init_ui(self):
        # 工具
        item_list = [
            {'text': u'文件', 'svg': 'folder_line.svg',
             'clicked': self.openFile},
            {'text': u'编辑', 'svg': 'edit_line.svg',
             'clicked': self.editFile},
            {'text': u'关于', 'svg': 'warning_line.svg',
             'clicked': self.showAbout},
        ]
        tool_bar = MMenuTabWidget()
        tool_bar.tool_bar_insert_widget(MLabel('Zeus').h4().secondary().strong())
        self.user_toolButton = MToolButton().large()
        pixmap = QPixmap(file_path + "\\res\\headPortrial\\user_default.png")
        self.user_toolButton.setIcon(pixmap)
        tool_bar.tool_bar_append_widget(
            MBadge.dot(show=False, widget=self.user_toolButton))
        self.label = MLabel(u"未登录")
        tool_bar.tool_bar_append_widget(
            MBadge.dot(show=False, widget=self.label))
      
        for index, data_dict in enumerate(item_list):
            tool_bar.add_menu(data_dict, index)

        main_lay = QHBoxLayout()
        main_lay.setContentsMargins(0, 0, 0, 0)
        main_lay.addWidget(tool_bar)

        self.setLayout(main_lay)
        self.layout().setSpacing(0)
        self.layout().setContentsMargins(0, 0, 0, 0)

        self.user_toolButton.clicked.connect(self.setUser)
예제 #2
0
def test_badge_count(qtbot, num, text, visible):
    """Test MBadge init."""
    label = QLabel('test')
    badge_1 = MBadge.count(count=num, widget=label)
    badge_2 = MBadge.count(num)
    main_widget = QWidget()
    main_lay = QVBoxLayout()
    main_widget.setLayout(main_lay)
    main_lay.addWidget(badge_1)
    main_lay.addWidget(badge_2)
    qtbot.addWidget(main_widget)
    main_widget.show()

    assert badge_1._badge_button.text() == text
    assert badge_1._badge_button.isVisible() == visible
    assert badge_2._badge_button.text() == text
    assert badge_2._badge_button.isVisible() == visible
    assert badge_1.get_dayu_dot() is None
    assert badge_2.get_dayu_dot() is None
    assert badge_1.get_dayu_text() is None
    assert badge_2.get_dayu_text() is None
    assert badge_1.get_dayu_count() == num
    assert badge_2.get_dayu_count() == num
    assert badge_1.get_dayu_overflow() == 99
    assert badge_2.get_dayu_overflow() == 99
예제 #3
0
    def _init_ui(self):
        standalone_lay = QHBoxLayout()
        standalone_lay.addWidget(MBadge.count(0))
        standalone_lay.addWidget(MBadge.count(20))
        standalone_lay.addWidget(MBadge.count(100))
        standalone_lay.addWidget(MBadge.dot(True))
        standalone_lay.addWidget(MBadge.text('new'))
        standalone_lay.addStretch()

        button = MToolButton().svg('trash_line.svg')
        avatar = MAvatar.large(MPixmap('avatar.png'))
        button_alert = MToolButton().svg('alert_fill.svg').large()
        badge_1 = MBadge.dot(True, widget=button)
        badge_2 = MBadge.dot(True, widget=avatar)
        badge_3 = MBadge.dot(True, widget=button_alert)
        button.clicked.connect(lambda: badge_1.set_dayu_dot(False))

        spin_box = MSpinBox()
        spin_box.setRange(0, 9999)
        spin_box.valueChanged.connect(badge_3.set_dayu_count)
        spin_box.setValue(1)

        self.register_field('button1_selected', u'北京')
        menu1 = MMenu()
        menu1.set_data([u'北京', u'上海', u'广州', u'深圳'])
        select1 = MComboBox()
        select1.set_menu(menu1)
        self.bind('button1_selected',
                  select1,
                  'value',
                  signal='sig_value_changed')

        badge_hot = MBadge.text('hot', widget=MLabel(u'你的理想城市  '))

        sub_lay1 = QHBoxLayout()
        sub_lay1.addWidget(badge_1)
        sub_lay1.addWidget(badge_2)
        sub_lay1.addWidget(badge_3)
        sub_lay1.addStretch()

        sub_lay2 = QHBoxLayout()
        sub_lay2.addWidget(badge_hot)
        sub_lay2.addWidget(select1)
        sub_lay2.addStretch()

        main_lay = QVBoxLayout()
        main_lay.addWidget(MDivider('use standalone'))
        main_lay.addLayout(standalone_lay)
        main_lay.addWidget(MDivider('different type'))
        main_lay.addLayout(sub_lay1)
        main_lay.addWidget(spin_box)
        main_lay.addWidget(MDivider('different type'))
        main_lay.addLayout(sub_lay2)
        main_lay.addStretch()
        self.setLayout(main_lay)
예제 #4
0
    def _init_ui(self):
        item_list = [
            {
                "text": "Overview",
                "svg": "home_line.svg",
                "clicked": functools.partial(MMessage.info, "首页", parent=self),
            },
            {
                "text": "我的",
                "svg": "user_line.svg",
                "clicked": functools.partial(MMessage.info,
                                             "编辑账户",
                                             parent=self),
            },
            {
                "text": "Notice",
                "svg": "alert_line.svg",
                "clicked": functools.partial(MMessage.info,
                                             "查看通知",
                                             parent=self),
            },
        ]
        tool_bar = MMenuTabWidget()
        tool_bar_huge = MMenuTabWidget()
        tool_bar_huge.set_dayu_size(dayu_theme.huge)
        tool_bar_huge_v = MMenuTabWidget(orientation=QtCore.Qt.Vertical)
        tool_bar_huge_v.set_dayu_size(dayu_theme.huge)
        tool_bar.tool_bar_insert_widget(
            MLabel("DaYu").h4().secondary().strong())
        tool_bar_huge.tool_bar_insert_widget(
            MLabel("DaYu").h4().secondary().strong())
        dayu_icon = MLabel("DaYu").h4().secondary().strong()
        dayu_icon.setContentsMargins(10, 10, 10, 10)
        tool_bar_huge_v.tool_bar_insert_widget(dayu_icon)
        tool_bar.tool_bar_append_widget(
            MBadge.dot(
                show=True,
                widget=MToolButton().icon_only().svg("user_fill.svg").large()))
        for index, data_dict in enumerate(item_list):
            tool_bar.add_menu(data_dict, index)
            tool_bar_huge.add_menu(data_dict, index)
            tool_bar_huge_v.add_menu(data_dict, index)

        tool_bar.tool_button_group.set_dayu_checked(0)
        tool_bar_huge.tool_button_group.set_dayu_checked(0)
        tool_bar_huge_v.tool_button_group.set_dayu_checked(0)

        main_lay = QtWidgets.QVBoxLayout()
        main_lay.setContentsMargins(0, 0, 0, 0)

        main_lay.addWidget(MLabel("Menu Tab Widget (Large)"))
        main_lay.addWidget(tool_bar)

        main_lay.addWidget(MLabel("Menu Tab Widget (Huge)"))
        main_lay.addWidget(tool_bar_huge)

        main_lay.addWidget(MLabel("Menu Vertical Tab Widget (Huge)"))
        main_lay.addWidget(tool_bar_huge_v)

        self.setLayout(main_lay)
예제 #5
0
    def _init_ui(self):
        standalone_lay = QtWidgets.QHBoxLayout()
        standalone_lay.addWidget(MBadge.count(0))
        standalone_lay.addWidget(MBadge.count(20))
        standalone_lay.addWidget(MBadge.count(100))
        standalone_lay.addWidget(MBadge.dot(True))
        standalone_lay.addWidget(MBadge.text("new"))
        standalone_lay.addStretch()

        button = MToolButton().svg("trash_line.svg")
        avatar = MAvatar.large(MPixmap("avatar.png"))
        button_alert = MToolButton().svg("alert_fill.svg").large()
        badge_1 = MBadge.dot(True, widget=button)
        badge_2 = MBadge.dot(True, widget=avatar)
        badge_3 = MBadge.dot(True, widget=button_alert)
        button.clicked.connect(lambda: badge_1.set_dayu_dot(False))

        spin_box = MSpinBox()
        spin_box.setRange(0, 9999)
        spin_box.valueChanged.connect(badge_3.set_dayu_count)
        spin_box.setValue(1)

        self.register_field("button1_selected", "北京")
        menu1 = MMenu(parent=self)
        menu1.set_data(["北京", "上海", "广州", "深圳"])
        select1 = MComboBox()
        select1.set_menu(menu1)
        self.bind("button1_selected", select1, "value", signal="sig_value_changed")

        badge_hot = MBadge.text("hot", widget=MLabel("你的理想城市  "))

        sub_lay1 = QtWidgets.QHBoxLayout()
        sub_lay1.addWidget(badge_1)
        sub_lay1.addWidget(badge_2)
        sub_lay1.addWidget(badge_3)
        sub_lay1.addStretch()

        sub_lay2 = QtWidgets.QHBoxLayout()
        sub_lay2.addWidget(badge_hot)
        sub_lay2.addWidget(select1)
        sub_lay2.addStretch()

        main_lay = QtWidgets.QVBoxLayout()
        main_lay.addWidget(MDivider("use standalone"))
        main_lay.addLayout(standalone_lay)
        main_lay.addWidget(MDivider("different type"))
        main_lay.addLayout(sub_lay1)
        main_lay.addWidget(spin_box)
        main_lay.addWidget(MDivider("different type"))
        main_lay.addLayout(sub_lay2)
        main_lay.addStretch()
        self.setLayout(main_lay)
예제 #6
0
def test_badge_dot(qtbot, show, visible):
    """Test MBadge init."""
    label = QLabel('test')
    badge_1 = MBadge.dot(show=show, widget=label)
    badge_2 = MBadge.dot(show)
    main_widget = QWidget()
    main_lay = QVBoxLayout()
    main_widget.setLayout(main_lay)
    main_lay.addWidget(badge_1)
    main_lay.addWidget(badge_2)
    qtbot.addWidget(main_widget)
    main_widget.show()

    assert badge_1._badge_button.isVisible() == visible
    assert badge_2._badge_button.isVisible() == visible
    assert badge_1.get_dayu_dot() == show
    assert badge_2.get_dayu_dot() == show
    assert badge_1.get_dayu_text() is None
    assert badge_2.get_dayu_text() is None
    assert badge_1.get_dayu_count() is None
    assert badge_2.get_dayu_count() is None
예제 #7
0
def test_badge_text(qtbot, content, text, visible):
    """Test MBadge init."""
    label = QtWidgets.QLabel("test")
    badge_1 = MBadge.text(text=content, widget=label)
    badge_2 = MBadge.text(text=content)
    main_widget = QtWidgets.QWidget()
    main_lay = QtWidgets.QVBoxLayout()
    main_widget.setLayout(main_lay)
    main_lay.addWidget(badge_1)
    main_lay.addWidget(badge_2)
    qtbot.addWidget(main_widget)
    main_widget.show()

    assert badge_1._badge_button.text() == text
    assert badge_1._badge_button.isVisible() == visible
    assert badge_2._badge_button.text() == text
    assert badge_2._badge_button.isVisible() == visible
    assert badge_1.get_dayu_dot() is False
    assert badge_2.get_dayu_dot() is False
    assert badge_1.get_dayu_text() == text
    assert badge_2.get_dayu_text() == text
    assert badge_1.get_dayu_count() is None
    assert badge_2.get_dayu_count() is None
예제 #8
0
def test_badge_overflow(qtbot, num, text, overflow):
    """Test MBadge init."""
    badge = MBadge.count(num)
    badge.set_dayu_overflow(overflow)
    main_widget = QWidget()
    main_lay = QVBoxLayout()
    main_widget.setLayout(main_lay)
    main_lay.addWidget(badge)
    qtbot.addWidget(main_widget)
    main_widget.show()

    assert badge._badge_button.text() == text
    assert badge.get_dayu_dot() is None
    assert badge.get_dayu_text() is None
    assert badge.get_dayu_count() == num
    assert badge.get_dayu_overflow() == overflow
    def _init_ui(self):
        item_list = [
            {
                'text': 'Overview',
                'svg': 'home_line.svg',
                'clicked': functools.partial(MMessage.info, u'首页', parent=self)
            },
            {
                'text': u'我的',
                'svg': 'user_line.svg',
                'clicked': functools.partial(MMessage.info,
                                             u'编辑账户',
                                             parent=self)
            },
            {
                'text': u'Notice',
                'svg': 'alert_line.svg',
                'clicked': functools.partial(MMessage.info,
                                             u'查看通知',
                                             parent=self)
            },
        ]
        tool_bar = MMenuTabWidget()
        tool_bar.tool_bar_insert_widget(
            MLabel('DaYu').h4().secondary().strong())
        tool_bar.tool_bar_append_widget(
            MBadge.dot(
                show=True,
                widget=MToolButton().icon_only().svg('user_fill.svg').large()))
        self.content_widget = MLabel()
        for index, data_dict in enumerate(item_list):
            tool_bar.add_menu(data_dict, index)
        tool_bar.tool_button_group.set_dayu_checked(0)

        main_lay = QVBoxLayout()
        main_lay.setContentsMargins(0, 0, 0, 0)
        main_lay.addWidget(tool_bar)
        main_lay.addWidget(self.content_widget)

        self.setLayout(main_lay)