密码找回界面练习
import sys, math from PyQt5.QtWidgets import * from PyQt5 import QtWidgets, QtCore, QtGui 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.sr_zh = QLineEdit(self) #self.sr_zh.setText("32261228") # 用户名 self.sr_zh.setPlaceholderText("请输入您的账号") self.sr_zh.move(210, 170) self.sr_zh.setFixedSize(400, 30) self.sr_zh.setStyleSheet(label_wzbj) # 性别默认为空 self.info1 = '' self.info2 = '' self.rb11 = QRadioButton(' 手机号码', self) self.rb11.move(210, 210) self.rb11.setFixedSize(130, 30) self.rb11.setStyleSheet(label_wzbj) self.rb12 = QRadioButton(' 邮件地址', self) self.rb12.move(345, 210) self.rb12.setFixedSize(130, 30) self.rb12.setStyleSheet(label_wzbj) self.rb13 = QRadioButton(' 证件编码', self) self.rb13.move(480, 210) 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_mm = QLabel(self) self.sr_mm.setText("确认提示") self.sr_mm.move(210, 250) self.sr_mm.setFixedSize(400, 30) self.sr_mm.setStyleSheet(label_wzbj) self.sr_qmm = QLineEdit(self) self.sr_qmm.setPlaceholderText("请确认您的确认信息") #self.sr_qmm.setEchoMode(QLineEdit.PasswordEchoOnEdit) # 密码输入正常,之后特殊显示 self.sr_qmm.move(210, 290) self.sr_qmm.setFixedSize(400, 30) self.sr_qmm.setStyleSheet(label_wzbj) self.sr_lxdh = QLabel(self) self.sr_lxdh.setText("获取账号密码") self.sr_lxdh.move(210, 330) self.sr_lxdh.setFixedSize(400, 30) self.sr_lxdh.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.label_sytk_qr = QLabel(self) self.label_sytk_qr.setText("请认真阅读:<a href='https://mail.163.com/'>《使用条款》</a>") self.label_sytk_qr.setOpenExternalLinks(True)#允许超链接 self.label_sytk_qr.move(210, 410) self.label_sytk_qr.setFixedSize(200, 30) self.label_sytk_qr.setStyleSheet('font-size:15px;') #同意协议并注册 self.bt1 = QPushButton('获取随机验证码', self) self.bt1.move(100, 450) self.bt1.setFixedSize(100, 30) # 设定时间 self.count = 30 self.bt1.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, 450) 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, 450) self.sr_yzm.setFixedSize(200, 30) self.sr_yzm.setStyleSheet(label_wzbj) #同意协议并注册 self.bt2 = QPushButton('密码找回', self) self.bt2.move(490, 450) self.bt2.setFixedSize(120, 30) self.bt2.clicked.connect(self.register) self.label_zctg_qr = QLabel(self) self.label_zctg_qr.setText("") self.label_zctg_qr.move(620, 450) self.label_zctg_qr.setFixedSize(100, 30) self.show() def rbclicked(self): sender = self.sender() if sender == self.bg1 and len(self.sr_zh.text()) >0: if self.bg1.checkedId() == 11: self.info1 = '手机' self.info2 = '139XXXXXXX' self.sr_mm.setText('填写手机号码:139XXXXXXX') elif self.bg1.checkedId() == 12: self.info1 = '邮件' self.info2 = 'XXXXXXX@163.com' self.sr_mm.setText('填写邮箱地址:XXXXXXX@163.com') elif self.bg1.checkedId() == 13: self.info1 = '证件' self.info2 = '37XXXXXXXXXXXXXX' self.sr_mm.setText('填写证件编码:37XXXXXXXXXXXXXX') else: self.info1 = '' self.info2 = '' else: self.sr_mm.setText('请先输入您的账号') def Action(self): if self.bt1.isEnabled(): self.time.start() self.bt1.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.bt1.setText(str(self.count) + '秒后重发') self.count -= 1 else: self.time.stop() self.bt1.setText('获取随机验证码') self.bt1.setEnabled(True) # 点击发送后 count 重置为30 self.count = 30 def register(self): #先将标记还原 self.label_zh_qr.setText('*') self.label_xm_qr.setText('*') self.label_mm_qr.setText('*') self.label_qmm_qr.setText('*') if len(self.sr_zh.text()) == 0: self.label_zh_qr.setText('用户账号为空') elif self.info1 == '': self.label_xm_qr.setText('确认类型为空') elif len(self.sr_mm.text()) == 0: self.label_mm_qr.setText('用户密码为空') elif len(self.sr_qmm.text()) == 0: self.label_qmm_qr.setText('确认信息为空') elif self.sr_qmm.text() != 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('确认信息') self.sr_lxdh.setText('XXXXXXXX') if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())