初识pyqt5之登录和注册界面(1)

初识pyqt5之登录和注册界面(1)

1.注册界面register_base.py


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_register_pane(object):
    def setupUi(self, register_pane):
        register_pane.setObjectName("register_pane")
        register_pane.resize(520, 450)
        register_pane.setMinimumSize(QtCore.QSize(520, 450))
        register_pane.setMaximumSize(QtCore.QSize(520, 450))
        font = QtGui.QFont()
        font.setPointSize(9)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        register_pane.setFont(font)
        register_pane.setStyleSheet("#register_pane{\n"
"border-image: url(img/3.jpg);\n"

"}")
        self.user_le = QtWidgets.QLineEdit(register_pane)
        self.user_le.setGeometry(QtCore.QRect(280, 125, 159, 30))
        self.user_le.setMinimumSize(QtCore.QSize(0, 30))
        font = QtGui.QFont()
        font.setPointSize(15)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.user_le.setFont(font)
        self.user_le.setObjectName("user_le")
        self.pwd_le = QtWidgets.QLineEdit(register_pane)
        self.pwd_le.setGeometry(QtCore.QRect(280, 174, 159, 30))
        self.pwd_le.setMinimumSize(QtCore.QSize(0, 30))
        font = QtGui.QFont()
        font.setPointSize(15)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.pwd_le.setFont(font)
        self.pwd_le.setObjectName("pwd_le")
        self.pwd_le2 = QtWidgets.QLineEdit(register_pane)
        self.pwd_le2.setGeometry(QtCore.QRect(280, 223, 159, 30))
        self.pwd_le2.setMinimumSize(QtCore.QSize(0, 30))
        font = QtGui.QFont()
        font.setPointSize(15)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.pwd_le2.setFont(font)
        self.pwd_le2.setObjectName("pwd_le2")
        self.email_le = QtWidgets.QLineEdit(register_pane)
        self.email_le.setGeometry(QtCore.QRect(280, 272, 159, 30))
        self.email_le.setMinimumSize(QtCore.QSize(0, 30))
        font = QtGui.QFont()
        font.setPointSize(15)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.email_le.setFont(font)
        self.email_le.setObjectName("email_le")
        self.valicode_le = QtWidgets.QLineEdit(register_pane)
        self.valicode_le.setGeometry(QtCore.QRect(280, 321, 159, 30))
        self.valicode_le.setMinimumSize(QtCore.QSize(0, 30))
        font = QtGui.QFont()
        font.setPointSize(15)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.valicode_le.setFont(font)
        self.valicode_le.setObjectName("valicode_le")
        self.register_bt = QtWidgets.QPushButton(register_pane)
        self.register_bt.setEnabled(False)
        self.register_bt.setGeometry(QtCore.QRect(190, 370, 251, 50))
        self.register_bt.setMinimumSize(QtCore.QSize(0, 50))
        font = QtGui.QFont()
        font.setPointSize(20)
        font.setBold(False)
        font.setItalic(False)
        font.setWeight(75)
        self.register_bt.setFont(font)
        self.register_bt.setStyleSheet("#register_bt{\n"
"    \n"
"    \n"
"    background-color: rgb(0, 170, 255);\n"
"    color: rgb(0, 85, 255);\n"
"}\n"
"#register_bt:hover{\n"
"    \n"
"    background-color: rgb(55, 0, 166);\n"
"    color: rgb(255, 255, 127);\n"
"}\n"
"#register_bt:disabled{\n"
"    background-color: rgb(113, 113, 113);\n"
"    color: rgb(35, 35, 35);\n"
"}")
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("img/4.jpg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.register_bt.setIcon(icon)
        self.register_bt.setIconSize(QtCore.QSize(40, 40))
        self.register_bt.setCheckable(False)
        self.register_bt.setObjectName("register_bt")
        self.valicode_bt = QtWidgets.QPushButton(register_pane)
        self.valicode_bt.setGeometry(QtCore.QRect(444, 272, 71, 30))
        self.valicode_bt.setStyleSheet("#valicode_bt{\n"
"background-color: rgb(255, 255, 127);\n"
"}\n"
"#valicode_bt:hover{\n"
"    background-color: rgb(222, 222, 111);\n"
"}")
        self.valicode_bt.setObjectName("valicode_bt")
        self.register_exit = QtWidgets.QPushButton(register_pane)
        self.register_exit.setGeometry(QtCore.QRect(10, 40, 80, 80))
        font = QtGui.QFont()
        font.setPointSize(20)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.register_exit.setFont(font)
        self.register_exit.setStyleSheet("#register_exit{\n"
"background-color: rgb(255, 170, 0);\n"
"    color: rgb(170, 0, 255);\n"
"    border-radius:40px;\n"
"}\n"
"#register_exit:hover{\n"
"    background-color: rgb(255, 0, 0);\n"
"    color: rgb(85, 0, 255);\n"
"}")
        self.register_exit.setObjectName("register_exit")
        self.label_6 = QtWidgets.QLabel(register_pane)
        self.label_6.setGeometry(QtCore.QRect(110, 20, 401, 51))
        font = QtGui.QFont()
        font.setPointSize(25)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.label_6.setFont(font)
        self.label_6.setStyleSheet("color: rgb(255, 0, 0);")
        self.label_6.setObjectName("label_6")
        self.user_warm_lb = QtWidgets.QLabel(register_pane)
        self.user_warm_lb.setGeometry(QtCore.QRect(440, 130, 81, 21))
        self.user_warm_lb.setStyleSheet("\n"
"color: rgb(255, 0, 0);\n"
"background-color: rgb(255, 255, 255);")
        self.user_warm_lb.setObjectName("user_warm_lb")
        self.user_warm_lb.setHidden(True)
        self.pwd_warm_lb = QtWidgets.QLabel(register_pane)
        self.pwd_warm_lb.setGeometry(QtCore.QRect(440, 229, 71, 21))
        self.pwd_warm_lb.setStyleSheet("color: rgb(255, 0, 0);\n"
"background-color: rgb(255, 255, 255);")
        self.pwd_warm_lb.setObjectName("pwd_warm_lb")
        self.pwd_warm_lb.setHidden(True)
        self.valicode_warm_lb = QtWidgets.QLabel(register_pane)
        self.valicode_warm_lb.setGeometry(QtCore.QRect(440, 325, 81, 21))
        self.valicode_warm_lb.setStyleSheet("color: rgb(255, 0, 0);\n"
"background-color: rgb(255, 255, 255);")
        self.valicode_warm_lb.setObjectName("valicode_warm_lb")
        self.valicode_warm_lb.setHidden(True)
        self.register_clear = QtWidgets.QPushButton(register_pane)
        self.register_clear.setGeometry(QtCore.QRect(10, 130, 80, 80))
        font = QtGui.QFont()
        font.setPointSize(20)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.register_clear.setFont(font)
        self.register_clear.setStyleSheet("#register_clear{\n"
"color: rgb(170, 255, 127);\n"
"background-color: rgb(85, 170, 127);\n"
"border-radius:40px;\n"
"}\n"
"#register_clear:hover{\n"
"    color: rgb(0, 255, 0);\n"
"    background-color: rgb(0, 91, 0);\n"
"}")
        self.register_clear.setObjectName("register_clear")
        self.widget = QtWidgets.QWidget(register_pane)
        self.widget.setGeometry(QtCore.QRect(189, 115, 84, 241))
        self.widget.setObjectName("widget")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.widget)
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.label = QtWidgets.QLabel(self.widget)
        font = QtGui.QFont()
        font.setPointSize(13)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.label.setFont(font)
        self.label.setStyleSheet("color: rgb(255, 255, 255);")
        self.label.setObjectName("label")
        self.verticalLayout_2.addWidget(self.label)
        self.label_2 = QtWidgets.QLabel(self.widget)
        font = QtGui.QFont()
        font.setPointSize(13)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.label_2.setFont(font)
        self.label_2.setStyleSheet("color: rgb(255, 255, 255);")
        self.label_2.setObjectName("label_2")
        self.verticalLayout_2.addWidget(self.label_2)
        self.label_3 = QtWidgets.QLabel(self.widget)
        font = QtGui.QFont()
        font.setPointSize(13)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.label_3.setFont(font)
        self.label_3.setStyleSheet("color: rgb(255, 255, 255);")
        self.label_3.setObjectName("label_3")
        self.verticalLayout_2.addWidget(self.label_3)
        self.label_4 = QtWidgets.QLabel(self.widget)
        font = QtGui.QFont()
        font.setPointSize(13)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.label_4.setFont(font)
        self.label_4.setStyleSheet("color: rgb(255, 255, 255);")
        self.label_4.setObjectName("label_4")
        self.verticalLayout_2.addWidget(self.label_4)
        self.label_5 = QtWidgets.QLabel(self.widget)
        font = QtGui.QFont()
        font.setPointSize(13)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.label_5.setFont(font)
        self.label_5.setStyleSheet("color: rgb(255, 255, 255);")
        self.label_5.setObjectName("label_5")
        self.verticalLayout_2.addWidget(self.label_5)

        self.retranslateUi(register_pane)
        self.register_bt.clicked.connect(register_pane.register)
        self.valicode_bt.clicked.connect(register_pane.get_valicode)
        self.register_clear.clicked.connect(register_pane.clear_text)
        self.register_exit.clicked.connect(register_pane.back_login)
        self.user_le.textChanged['QString'].connect(register_pane.enable_login_bt)
        self.pwd_le.textChanged['QString'].connect(register_pane.enable_login_bt)
        self.pwd_le2.textChanged['QString'].connect(register_pane.enable_login_bt)
        self.email_le.textChanged['QString'].connect(register_pane.enable_login_bt)
        self.valicode_le.textChanged['QString'].connect(register_pane.enable_login_bt)
        QtCore.QMetaObject.connectSlotsByName(register_pane)

    def retranslateUi(self, register_pane):
        _translate = QtCore.QCoreApplication.translate
        register_pane.setWindowTitle(_translate("register_pane", "庆丰量化注册页面"))
        self.register_bt.setText(_translate("register_pane", "注册"))
        self.valicode_bt.setText(_translate("register_pane", "获取验证码"))
        self.register_exit.setText(_translate("register_pane", "退出"))
        self.label_6.setText(_translate("register_pane", "庆丰量化投资平台欢迎您!"))
        self.user_warm_lb.setText(_translate("register_pane", "用户名不可用!"))
        self.pwd_warm_lb.setText(_translate("register_pane", "密码不一样"))
        self.valicode_warm_lb.setText(_translate("register_pane", "验证码错误!"))
        self.register_clear.setText(_translate("register_pane", "重置"))
        self.label.setText(_translate("register_pane", "用户名:"))
        self.label_2.setText(_translate("register_pane", "密码:"))
        self.label_3.setText(_translate("register_pane", "确认密码:"))
        self.label_4.setText(_translate("register_pane", "邮箱:"))
        self.label_5.setText(_translate("register_pane", "验证码:"))

2.进行封装registerpane.py

from PyQt5.Qt import QWidget
from PyQt5.QtCore import Qt, pyqtSignal, QPropertyAnimation, QPoint, QEasingCurve, QAbstractAnimation
from PyQt5.QtWidgets import QApplication
import sys

from register_base import Ui_register_pane

class RegisterPane(QWidget,Ui_register_pane):
     exit_register_pane_signal=pyqtSignal()
     def __init__(self, parent=None, *args, **kwargs):
         super().__init__(parent, *args, **kwargs)
         self.setAttribute(Qt.WA_StyledBackground, True)
         self.setupUi(self)

     def register(self):
         username = self.user_le.text()
         pwd = self.pwd_le.text()
         pwd2 = self.pwd_le2.text()
         email = self.valicode_le.text()
         valicode = self.email_le.text()
         if pwd !=pwd2:
             self.pwd_warm_lb.setHidden(False)
         else:
             self.pwd_warm_lb.setHidden(True)


     def get_valicode(self):
         print("获取验证码")
     def clear_text(self):
         self.user_le.setText(" ")
         self.pwd_le.setText(" ")
         self.pwd_le2.setText(" ")
         self.valicode_le.setText(" ")
         self.email_le.setText(" ")
         self.register_bt.setDisabled(True)

     def exit_register_pane(self):
         animation = QPropertyAnimation(self)
         animation.setTargetObject(self)
         animation.setPropertyName(b"pos")
         animation.setStartValue(QPoint(0, 0))
         animation.setEndValue(QPoint(0, 450))
         animation.setDuration(1000)
         animation.setEasingCurve(QEasingCurve.OutBounce)
         animation.start(QAbstractAnimation.DeleteWhenStopped)
     def back_login(self):
         self.exit_register_pane_signal.emit()
     def enable_login_bt(self):
         username=self.user_le.text()
         pwd=self.pwd_le.text()
         pwd2=self.pwd_le2.text()
         email=self.valicode_le.text()
         valicode=self.email_le.text()
         if username!="" and pwd!="" and pwd2!="" and email!="" and valicode !="":
             self.register_bt.setDisabled(False)

         else:
             self.register_bt.setDisabled(True)

初识pyqt5之登录和注册界面(2)链接:link


版权声明:本文为m0_49795468原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。