用pyQT写一个运用到抽象工厂模式的界面

文章展示了如何在Python中利用PyQt5库,结合设计模式中的抽象工厂模式,创建WindowsFactory和MacFactory,分别用于生成不同平台风格的按钮和标签。MainWindow类根据传入的具体工厂实例创建用户界面。
摘要由CSDN通过智能技术生成
from PyQt5 import QtWidgets, QtGui
from abc import ABC, abstractmethod

# 定义抽象工厂类
class AbstractFactory(ABC):
    @abstractmethod
    def create_button(self):
        pass

    @abstractmethod
    def create_label(self):
        pass

# 定义具体工厂类
class WindowsFactory(AbstractFactory):
    def create_button(self):
        return QtWidgets.QPushButton("Windows Button")

    def create_label(self):
        return QtWidgets.QLabel("Windows Label")

class MacFactory(AbstractFactory):
    def create_button(self):
        return QtWidgets.QPushButton("Mac Button")

    def create_label(self):
        return QtWidgets.QLabel("Mac Label")

# 定义窗口类
class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, factory):
        super().__init__()
        self.factory = factory

        button = self.factory.create_button()
        label = self.factory.create_label()

        layout = QtWidgets.QVBoxLayout()
        layout.addWidget(button)
        layout.addWidget(label)

        widget = QtWidgets.QWidget()
        widget.setLayout(layout)
        self.setCentralWidget(widget)

if __name__ == "__main__":
    import sys

    app = QtWidgets.QApplication(sys.argv)

    # 选择具体工厂
    factory = WindowsFactory()

    window = MainWindow(factory)
    window.show()

    sys.exit(app.exec_())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值