通过界面化制作流程发起环节
import sys, math from PyQt5.QtWidgets import * from PyQt5 import QtWidgets, QtCore, QtGui from PyQt5.QtCore import QDate, QDateTime, QTime import random class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.resize(800, 600) self.setWindowTitle('流程发起页面') self.setStyleSheet("background-color:rgb(135,206,235)") # 内部 显示图片 框属性 self.label_tp = QLabel(self) # 内部 显示图片 框标题初始 self.label_tp.setText("显示图片") # 内部窗口的宽度高度 self.label_tp.setFixedSize(200, 80) # 内部窗口的显示位置 self.label_tp.move(0, 0) # 内部窗口的内属性 font-size 字体大小, self.label_tp.setStyleSheet("QLabel{background:rgb(300,300,300,120,0.3);}" "QLabel{color:rgb(300,300,300,120,0.3);font-size:20px;font-weight:bold;font-family:宋体;}" ) jpg = QtGui.QPixmap('./images/标志.jpg').scaled(self.label_tp.width(), self.label_tp.height()) # 在窗体显示 self.label_tp.setPixmap(jpg) # 会员注册 文字显示 label_bj = 'border-width:1px;border-style:solid;font-size:25px;border-color:rgb(255,255,255,0.5);background-color:rgb(255,255,255,0.3);' self.label = QLabel(self) self.label.setText("流程发起") #self.label.setOpenExternalLinks(True) # 允许超链接 self.label.move(100, 100) self.label.setFixedSize(600, 50) self.label.setStyleSheet(label_bj) self.label.setAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter) label_wzbj = 'border-width:1px;border-style:solid;font-size:15px;border-color:rgb(0,0,0,0.5);background-color:rgb(255,255,255,0.3);' self.label_zh = QLabel(self) self.label_zh.setText("选择系统 :") self.label_zh.move(100, 170) self.label_zh.setFixedSize(100, 30) self.label_zh.setStyleSheet(label_wzbj) self.label_zh.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignCenter) self.label_xm = QLabel(self) self.label_xm.setText("授权账号 :") self.label_xm.move(100, 210) self.label_xm.setFixedSize(100, 30) self.label_xm.setStyleSheet(label_wzbj) self.label_xm.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignCenter) self.label_mm = QLabel(self) self.label_mm.setText("申请权限 :") self.label_mm.move(100, 250) self.label_mm.setFixedSize(100, 30) self.label_mm.setStyleSheet(label_wzbj) self.label_mm.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignCenter) self.label_qmm = QLabel(self) self.label_qmm.setText("申请类型 :") self.label_qmm.move(100, 290) self.label_qmm.setFixedSize(100, 30) self.label_qmm.setStyleSheet(label_wzbj) self.label_qmm.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignCenter) self.label_lxdh = QLabel(self) self.label_lxdh.setText("截止时间 :") self.label_lxdh.move(100, 330) self.label_lxdh.setFixedSize(100, 30) self.label_lxdh.setStyleSheet(label_wzbj) self.label_lxdh.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignCenter) self.label_emil = QLabel(self) self.label_emil.setText("上传附件 :") self.label_emil.move(100, 370) self.label_emil.setFixedSize(100, 30) self.label_emil.setStyleSheet(label_wzbj) self.label_emil.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignCenter) self.label_msxx = QLabel(self) self.label_msxx.setText("申请原因 :") self.label_msxx.move(100, 410) self.label_msxx.setFixedSize(100, 70) self.label_msxx.setStyleSheet(label_wzbj) self.label_msxx.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignCenter) # 默认为空 self.info1 = '' self.rb11 = QRadioButton(' CRM系统', self) self.rb11.move(210, 170) self.rb11.setFixedSize(130, 30) self.rb11.setStyleSheet(label_wzbj) self.rb12 = QRadioButton(' 经分系统', self) self.rb12.move(345, 170) self.rb12.setFixedSize(130, 30) self.rb12.setStyleSheet(label_wzbj) self.rb13 = QRadioButton(' 134系统', self) self.rb13.move(480, 170) self.rb13.setFixedSize(130, 30) self.rb13.setStyleSheet(label_wzbj) self.bg1 = QButtonGroup(self) self.bg1.addButton(self.rb11, 11) self.bg1.addButton(self.rb12, 12) self.bg1.addButton(self.rb13, 13) self.bg1.buttonClicked.connect(self.rbclicked) self.sr_xm = QLineEdit(self) self.sr_xm.setPlaceholderText("请输入授权账号") self.sr_xm.move(210, 210) self.sr_xm.setFixedSize(400, 30) self.sr_xm.setStyleSheet(label_wzbj) # 籍贯选择省份 self.sr_mm = QComboBox(self) self.sr_mm.addItems(['未知', '不详']) self.sr_mm.move(210, 250) self.sr_mm.setFixedSize(195, 30) self.sr_mm.setStyleSheet(label_wzbj) self.sr_mm.currentIndexChanged.connect(self.sr_mmx_bd) # 籍贯选择地市 self.sr_mmx = QComboBox(self) self.sr_mmx.addItems(['未知', '不详']) self.sr_mmx.move(415, 250) self.sr_mmx.setFixedSize(195, 30) self.sr_mmx.setStyleSheet(label_wzbj) #self.sr_mmx.currentIndexChanged.connect(self.sr_qmm_bd) # 默认为空 self.info2 = '' self.rb21 = QRadioButton(' 新增长期', self) self.rb21.move(210, 290) self.rb21.setFixedSize(130, 30) self.rb21.setStyleSheet(label_wzbj) self.rb22 = QRadioButton(' 临时放权', self) self.rb22.move(345, 290) self.rb22.setFixedSize(130, 30) self.rb22.setStyleSheet(label_wzbj) self.rb23 = QRadioButton(' 权限终止', self) self.rb23.move(480, 290) self.rb23.setFixedSize(130, 30) self.rb23.setStyleSheet(label_wzbj) self.bg2 = QButtonGroup(self) self.bg2.addButton(self.rb21, 11) self.bg2.addButton(self.rb22, 12) self.bg2.addButton(self.rb23, 13) self.bg2.buttonClicked.connect(self.rbclicked2) # 指定当前地日期为控件的日期,注意没有指定时间 self.dateEdit_y = QDateTimeEdit(QDate.currentDate(), self) self.dateEdit_y.setDisplayFormat("yyyy") self.dateEdit_y.move(210, 330) self.dateEdit_y.setFixedSize(100, 30) self.dateEdit_y.setStyleSheet(label_wzbj) self.dateEdit_ysm = QLabel(self) self.dateEdit_ysm.setText("年") self.dateEdit_ysm.move(315, 330) self.dateEdit_ysm.setFixedSize(25, 30) self.dateEdit_ysm.setStyleSheet('font-size:18px;') self.dateEdit_m = QDateTimeEdit(QDate.currentDate(), self) self.dateEdit_m.setDisplayFormat("MM") self.dateEdit_m.move(345, 330) self.dateEdit_m.setFixedSize(100, 30) self.dateEdit_m.setStyleSheet(label_wzbj) self.dateEdit_msm = QLabel(self) self.dateEdit_msm.setText("月") self.dateEdit_msm.move(450, 330) self.dateEdit_msm.setFixedSize(25, 30) self.dateEdit_msm.setStyleSheet('font-size:18px;') self.dateEdit_d = QDateTimeEdit(QDate.currentDate(), self) self.dateEdit_d.setDisplayFormat("dd") self.dateEdit_d.move(480, 330) self.dateEdit_d.setFixedSize(100, 30) self.dateEdit_d.setStyleSheet(label_wzbj) self.dateEdit_dsm = QLabel(self) self.dateEdit_dsm.setText("日") self.dateEdit_dsm.move(585, 330) self.dateEdit_dsm.setFixedSize(25, 30) self.dateEdit_dsm.setStyleSheet('font-size:18px;') #文件路径 self.wjlj_xs = QLabel(self) self.wjlj_xs.setText("文件路径") self.wjlj_xs.move(210, 370) self.wjlj_xs.setFixedSize(350, 30) self.wjlj_xs.setStyleSheet(label_wzbj) self.wjlj_dk = QPushButton('文件', self) self.wjlj_dk.move(565, 370) self.wjlj_dk.setFixedSize(45, 30) self.wjlj_dk.clicked.connect(self.wjlj_xz) # 申请原因 self.note_sr = QTextEdit(self) self.note_sr.setPlaceholderText("申请原因") self.note_sr.move(210, 410) self.note_sr.setFixedSize(400, 70) self.note_sr.setStyleSheet(label_wzbj) # 右侧确认 self.label_zh_qr = QLabel(self) self.label_zh_qr.setText("*") self.label_zh_qr.move(620, 170) self.label_zh_qr.setFixedSize(100, 30) self.label_xm_qr = QLabel(self) self.label_xm_qr.setText("*") self.label_xm_qr.move(620, 210) self.label_xm_qr.setFixedSize(100, 30) self.label_mm_qr = QLabel(self) self.label_mm_qr.setText("*") self.label_mm_qr.move(620, 250) self.label_mm_qr.setFixedSize(100, 30) self.label_qmm_qr = QLabel(self) self.label_qmm_qr.setText("*") self.label_qmm_qr.move(620, 290) self.label_qmm_qr.setFixedSize(100, 30) self.label_lxdh_qr = QLabel(self) self.label_lxdh_qr.setText("") self.label_lxdh_qr.move(620, 330) self.label_lxdh_qr.setFixedSize(100, 30) # 同意协议并注册 self.sjm_hq = QPushButton('获取随机验证码', self) self.sjm_hq.move(100, 490) self.sjm_hq.setFixedSize(100, 30) # 设定时间 self.count = 30 self.sjm_hq.clicked.connect(self.Action) self.time = QtCore.QTimer(self) # 每秒1000毫秒 self.time.setInterval(1000) # 时间到触发 Refresh self.time.timeout.connect(self.Refresh) # 随机码展示区 self.label_sjm = QLabel(self) self.label_sjm.setText("随机码") self.label_sjm.move(210, 490) self.label_sjm.setFixedSize(60, 30) self.label_sjm.setStyleSheet(label_wzbj) self.label_sjm.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignCenter) # 输入验证码 self.sr_yzm = QLineEdit(self) self.sr_yzm.setPlaceholderText("请输入您的验证码") self.sr_yzm.move(280, 490) self.sr_yzm.setFixedSize(200, 30) self.sr_yzm.setStyleSheet(label_wzbj) # 同意协议并注册 self.lcfq_fq = QPushButton('流程发起', self) self.lcfq_fq.move(490, 490) self.lcfq_fq.setFixedSize(120, 30) self.lcfq_fq.clicked.connect(self.register) self.label_zctg_qr = QLabel(self) self.label_zctg_qr.setText("") self.label_zctg_qr.move(620, 490) self.label_zctg_qr.setFixedSize(100, 30) self.show() def register(self): #先将标记还原 self.label_zh_qr.setText('*') self.label_xm_qr.setText('*') self.label_mm_qr.setText('*') self.label_qmm_qr.setText('*') if self.info1 == '': self.label_zh_qr.setText('选择系统为空') elif len(self.sr_xm.text()) == 0: self.label_xm_qr.setText('授权账号为空') elif self.sr_mmx.currentText() == '未知': self.label_mm_qr.setText('申请权限为空') elif self.info2 == '': self.label_qmm_qr.setText('申请类型为空') elif len(self.sr_yzm.text()) == 0: self.label_zctg_qr.setText('验证码为空') elif self.label_sjm.text() != self.sr_yzm.text(): self.label_zctg_qr.setText('验证码不一致') else: self.label_zctg_qr.setText('确认信息') def Action(self): if self.label_sjm.isEnabled(): self.time.start() self.label_sjm.setEnabled(False) sjs = str(random.randint(0, 9999)) #如果随机码长度不够4位,前面补零 if len(sjs) < 4: sjs = '0' * (4 - len(sjs)) + sjs self.label_sjm.setText(sjs) def Refresh(self): if self.count > 0: self.sjm_hq.setText(str(self.count) + '秒后重发') self.count -= 1 else: self.time.stop() self.sjm_hq.setText('获取随机验证码') self.sjm_hq.setEnabled(True) # 点击发送后 count 重置为30 self.count = 30 def sr_mmx_bd(self): #循环获取省市关系表 if self.info1 == 'CRM系统' and self.sr_mm.currentText() =='角色': self.sr_mmx.clear() self.sr_mmx.addItems(['角色1', '角色2', '角色3']) elif self.info1 == 'CRM系统' and self.sr_mm.currentText() =='权限': self.sr_mmx.clear() self.sr_mmx.addItems(['权限1', '权限2', '权限3']) elif self.info1 == 'CRM系统' and self.sr_mm.currentText() =='令牌': self.sr_mmx.clear() self.sr_mmx.addItems(['令牌1', '令牌2', '令牌3']) elif self.info1 == '经分系统' and self.sr_mm.currentText() == '角色': self.sr_mmx.clear() self.sr_mmx.addItems(['经分角色1', '经分角色2', '经分角色3']) elif self.info1 == '134系统' and self.sr_mm.currentText() == '角色': self.sr_mmx.clear() self.sr_mmx.addItems(['134角色1', '134角色2', '134角色3']) def rbclicked(self): sender = self.sender() if sender == self.bg1: if self.bg1.checkedId() == 11: self.info1 = 'CRM系统' self.sr_mm.clear() self.sr_mm.addItems(['角色', '权限', '令牌']) elif self.bg1.checkedId() == 12: self.info1 = '经分系统' self.sr_mm.clear() self.sr_mm.addItem('角色') elif self.bg1.checkedId() == 13: self.info1 = '134系统' self.sr_mm.clear() self.sr_mm.addItem('角色') else: self.info1 = '' #print(self.info1) def rbclicked2(self): sender = self.sender() if sender == self.bg2: if self.bg2.checkedId() == 11: self.info2 = '新增长期' self.dateEdit_y.setDate(QDate.fromString('2050-01-01', 'yyyy-MM-dd')) self.dateEdit_m.setDate(QDate.fromString('2050-01-01', 'yyyy-MM-dd')) self.dateEdit_d.setDate(QDate.fromString('2050-01-01', 'yyyy-MM-dd')) elif self.bg2.checkedId() == 12: self.info2 = '临时放权' self.dateEdit_y.setDate(QDate.currentDate()) self.dateEdit_m.setDate(QDate.currentDate()) self.dateEdit_d.setDate(QDate.currentDate().addDays(3)) elif self.bg2.checkedId() == 13: self.info2 = '权限终止' self.dateEdit_y.setDate(QDate.currentDate()) self.dateEdit_m.setDate(QDate.currentDate()) self.dateEdit_d.setDate(QDate.currentDate()) else: self.info1 = '' #print(self.info1) def wjlj_xz(self): # "*.jpg;;*.png;;All Files(*)" 是在打开窗体下显示的类型 imgName, imgType = QFileDialog.getOpenFileName(self, "打开文件", "", "*.jpg;;*.png;;All Files(*)") # 打开文件路径 并被拉伸到窗体显示大小 self.wjlj_xs.setText(imgName) if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())