业务代码
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