dayu_widgets-按钮组件:MPushButton

一、使用效果

二、使用案例

# 学习笔记 MPushButton控件
import asyncio
from PySide2.QtWidgets import QWidget, QApplication, QVBoxLayout, QHBoxLayout
from dayu_widgets.qt import MIcon
from qasync import QEventLoop

from dayu_widgets import MTheme, MPushButton


class DemoWidget(QWidget):
    def __init__(self, parent=None):
        super(DemoWidget, self).__init__(parent)
        self.setWindowTitle("MLoading控件学习")
        # 布局
        self.main_layout = QVBoxLayout()
        self.setLayout(self.main_layout)

        # 添加按钮
        self.sub_layout_1 = QHBoxLayout()
        self.main_layout.addLayout(self.sub_layout_1)
        self.sub_layout_1.addWidget(MPushButton("默认按钮"))
        self.sub_layout_1.addWidget(MPushButton("主要按钮").primary())
        self.sub_layout_1.addWidget(MPushButton("成功按钮").success())
        self.sub_layout_1.addWidget(MPushButton("警告按钮").warning())
        self.sub_layout_1.addWidget(MPushButton("危险按钮").danger())

        # 添加带图标按钮
        self.sub_layout_2 = QHBoxLayout()
        self.main_layout.addLayout(self.sub_layout_2)
        self.sub_layout_2.addWidget(MPushButton("上传按钮", MIcon("cloud_line.svg")))
        self.sub_layout_2.addWidget(MPushButton("文件按钮", MIcon("folder_line.svg", "#ddd")).primary())
        self.sub_layout_2.addWidget(MPushButton("提交按钮", MIcon("success_line.svg", "#ddd")).success())
        self.sub_layout_2.addWidget(MPushButton("编辑按钮", MIcon("edit_line.svg", "#ddd")).warning())
        self.sub_layout_2.addWidget(MPushButton("删除按钮", MIcon("trash_line.svg", "#ddd")).danger())

        # 按钮大小
        self.sub_layout_3 = QHBoxLayout()
        self.main_layout.addLayout(self.sub_layout_3)
        self.sub_layout_3.addWidget(MPushButton("大型按钮").large())
        self.sub_layout_3.addWidget(MPushButton("中型按钮").medium().primary())
        self.sub_layout_3.addWidget(MPushButton("小型按钮").small().primary())
        self.sub_layout_3.addWidget(MPushButton("微型按钮").tiny().primary())

        # 禁用按钮
        self.sub_layout_4 = QHBoxLayout()
        self.main_layout.addLayout(self.sub_layout_4)
        disabled_button_1 = MPushButton("禁用按钮")
        disabled_button_1.setEnabled(False)
        self.sub_layout_4.addWidget(disabled_button_1)


if __name__ == '__main__':
    # 创建主循环
    app = QApplication([])

    # 创建异步事件循环
    loop = QEventLoop(app)
    asyncio.set_event_loop(loop)

    # 创建窗口
    demo_widget = DemoWidget()
    MTheme().apply(demo_widget)
    # 显示窗口
    demo_widget.show()

    loop.run_forever()

三、魔改案例

可以自定义图标和自定义颜色

    def custom_color(self, color):
        """
        Set the background color of the button using a custom color.
        :param color: A string representing the color in hex format (e.g., "#FF00FF").
        :return: None
        """
        self.setStyleSheet(f"background-color: {color};")
        return self

# 学习笔记 MPushButton控件
import asyncio
from PySide2.QtWidgets import QWidget, QApplication, QVBoxLayout, QHBoxLayout
from dayu_widgets.qt import MIcon
from qasync import QEventLoop

from dayu_widgets import MTheme, MPushButton


class DemoWidget(QWidget):
    def __init__(self, parent=None):
        super(DemoWidget, self).__init__(parent)
        self.setWindowTitle("MLoading控件学习")
        # 布局
        self.main_layout = QVBoxLayout()
        self.setLayout(self.main_layout)

        # 添加按钮
        self.sub_layout_1 = QHBoxLayout()
        self.main_layout.addLayout(self.sub_layout_1)
        self.sub_layout_1.addWidget(MPushButton("默认按钮"))
        self.sub_layout_1.addWidget(MPushButton("主要按钮").primary())
        self.sub_layout_1.addWidget(MPushButton("成功按钮").success())
        self.sub_layout_1.addWidget(MPushButton("警告按钮").warning())
        self.sub_layout_1.addWidget(MPushButton("危险按钮").danger())

        # 添加带图标按钮
        self.sub_layout_2 = QHBoxLayout()
        self.main_layout.addLayout(self.sub_layout_2)
        self.sub_layout_2.addWidget(MPushButton("上传按钮", MIcon("cloud_line.svg")))
        self.sub_layout_2.addWidget(MPushButton("文件按钮", MIcon("folder_line.svg", "#ddd")).primary())
        self.sub_layout_2.addWidget(MPushButton("提交按钮", MIcon("success_line.svg", "#ddd")).success())
        self.sub_layout_2.addWidget(MPushButton("编辑按钮", MIcon("edit_line.svg", "#ddd")).warning())
        self.sub_layout_2.addWidget(MPushButton("删除按钮", MIcon("trash_line.svg", "#ddd")).danger())

        # 按钮大小
        self.sub_layout_3 = QHBoxLayout()
        self.main_layout.addLayout(self.sub_layout_3)
        self.sub_layout_3.addWidget(MPushButton("大型按钮").large())
        self.sub_layout_3.addWidget(MPushButton("中型按钮").medium().primary())
        self.sub_layout_3.addWidget(MPushButton("小型按钮").small().primary())
        self.sub_layout_3.addWidget(MPushButton("微型按钮").tiny().primary())

        # 禁用按钮
        self.sub_layout_4 = QHBoxLayout()
        self.main_layout.addLayout(self.sub_layout_4)
        disabled_button_1 = MPushButton("禁用按钮")
        disabled_button_1.setEnabled(False)
        self.sub_layout_4.addWidget(disabled_button_1)

        # 自定义图标、自定义颜色
        self.sub_layout_5 = QHBoxLayout()
        self.main_layout.addLayout(self.sub_layout_5)
        self.sub_layout_5.addWidget(MPushButton("自定义颜色按钮").custom_color("#FFFFFF"))
        # 将自定义的图标文件放置在dayu_widgets/static资源文件夹中,然后引用即可。
        self.sub_layout_5.addWidget(MPushButton("自定义图标按钮", MIcon("图标.png", "#ddd")))


if __name__ == '__main__':
    # 创建主循环
    app = QApplication([])

    # 创建异步事件循环
    loop = QEventLoop(app)
    asyncio.set_event_loop(loop)

    # 创建窗口
    demo_widget = DemoWidget()
    MTheme().apply(demo_widget)
    # 显示窗口
    demo_widget.show()

    loop.run_forever()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文子阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值