7.3.5 QT Designer:界面显示与业务逻辑的分离

本文探讨了如何使用QT Designer实现界面显示与业务逻辑的分离,通过将UI代码和业务代码分开,提高代码的可维护性和模块化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

业务代码

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from MainWinSignalSlog02 import Ui_MainWinSignalSlog02

class MyMainWindow(QMainWindow, Ui_MainWinSignalSlog02):
    #新建信号,分别为帮助信号,打印信号和预览信号,其中预览信号分为全屏预览信号和非全屏预览信号
    helpSignal = pyqtSignal(str)
    printSignal = pyqtSignal(list)
    previewSignal = pyqtSignal([int, str], [str])

    def __init__(self):
        super(MyMainWindow, self).__init__()
        #这里的setupUi()是几个意思?
        self.setupUi(self)
        self.initUI()

    def initUI(self):
        #信号连接槽
        self.helpSignal.connect(self.showHelpMessage)
        self.printSignal.connect(self.printPaper)
        #信号发射的参数不同连接到不同的槽函数
        self.previewSignal[str].connect(self.previewPaper)
        self.previewSignal[int, str].connect(self.previewPaperWithArgs)
        self.printButton.clicked.connect(self.emitPrintSignal)
        self.previewButton.clicked.connect(self.emitPreviewSignal)

    #预览信号发射函数,信号的触发其实是预览按键的点击
    def emitPreviewSignal(self):
        #视乎全屏选框的状态,而选择发射的信号内容
        if self.previewStatus.isChecked():
            self.previewSignal[int, str].emit(1080, "Full Screen")
        else:
            self.previewSignal[str].emit("Preview")

    #打印信号的发射,先整合份数和纸张类型成为一个列表类型的数据,然后发射出去
    #这里其实是否用字典类型数据发射会更合理?
    def emitPrintSignal(self):
        pList = []
        pList.append(self.numberSpinBox.value
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值