コード例 #1
0
class Join_Member(QWidget):
    def __init__(self, parent=None):

        QWidget.__init__(self, parent=parent)

        self.resize(650, 520)
        self.setMinimumSize(QtCore.QSize(650, 520))
        self.setMaximumSize(QtCore.QSize(650, 520))

        self.frame = QtWidgets.QWidget(self)
        self.frame.setEnabled(True)
        self.frame.setGeometry(QtCore.QRect(30, 10, 530, 500))
        self.frame.setStyleSheet(
            "background-color: #00E5CA; color: white;border-style: outset; border-radius: 5px; border-color: #00E5CA; border-width: 1px"
        )

        self.oss = QtWidgets.QLabel(self)
        self.oss.setGeometry(QtCore.QRect(80, 50, 430, 40))
        self.oss.setText("Office Support System")
        self.oss.setStyleSheet("background-color: #00E5CA; color: black")
        oss_font = self.oss.font()
        oss_font.setPointSize(29)
        oss_font.setBold(True)
        self.oss.setFont(oss_font)

        self.title = QtWidgets.QLabel(self)
        self.title.setGeometry(QtCore.QRect(80, 100, 430, 40))
        self.title.setText("회원가입")
        self.title.setStyleSheet("background-color: #00E5CA; color: black")
        title_font = self.title.font()
        title_font.setPointSize(20)
        title_font.setBold(True)
        self.title.setFont(title_font)
        self.title.setAlignment(QtCore.Qt.AlignCenter)

        self.id_input = QtWidgets.QLineEdit(self)
        self.id_input.setGeometry(QtCore.QRect(150, 160, 300, 40))
        self.id_input.setStyleSheet(
            "background-color: #FFFFFF; color: black;border-style: outset; border-radius: 5px; border-color: #00E5CA; border-width: 1px"
        )
        self.id_input.setPlaceholderText("아이디")
        member_font = self.id_input.font()
        member_font.setPointSize(13)
        member_font.setBold(False)
        self.id_input.setFont(member_font)

        self.pwd1_input = QtWidgets.QLineEdit(self)
        self.pwd1_input.setGeometry(QtCore.QRect(150, 230, 300, 40))
        self.pwd1_input.setStyleSheet(
            "background-color: #FFFFFF; color: black;border-style: outset; border-radius: 5px; border-color: #00E5CA; border-width: 1px"
        )
        self.pwd1_input.setPlaceholderText("패스워드")
        self.pwd1_input.setFont(member_font)
        self.pwd1_input.setEchoMode(QtWidgets.QLineEdit.Password)

        self.pwd2_input = QtWidgets.QLineEdit(self)
        self.pwd2_input.setGeometry(QtCore.QRect(150, 300, 300, 40))
        self.pwd2_input.setStyleSheet(
            "background-color: #FFFFFF; color: black;border-style: outset; border-radius: 5px; border-color: #00E5CA; border-width: 1px"
        )
        self.pwd2_input.setPlaceholderText("패스워드 확인")
        self.pwd2_input.setFont(member_font)
        self.pwd2_input.setEchoMode(QtWidgets.QLineEdit.Password)

        self.email_input = QtWidgets.QLineEdit(self)
        self.email_input.setGeometry(QtCore.QRect(150, 370, 300, 40))
        self.email_input.setStyleSheet(
            "background-color: #FFFFFF; color: black;border-style: outset; border-radius: 5px; border-color: #00E5CA; border-width: 1px"
        )
        self.email_input.setPlaceholderText("이메일")
        self.email_input.setFont(member_font)

        self.join_btn = QPushButton("회원가입", self)
        self.join_btn.setGeometry(QtCore.QRect(150, 440, 300, 40))
        self.join_btn.setStyleSheet(
            "background-color: #CCCCCC; color: #717171; border-style: outset; border-radius: 18px; border-color: #00E5CA; border-width: 1px"
        )
        member_btn_font = self.join_btn.font()
        member_btn_font.setPointSize(20)
        member_btn_font.setBold(True)
        self.join_btn.setFont(member_btn_font)

        self.cancle_btn = QPushButton("취소", self)
        self.cancle_btn.setGeometry(QtCore.QRect(480, 450, 50, 40))
        self.cancle_btn.setStyleSheet(
            "background-color: #00E5CA; color: #717171; border-style: outset; border-radius: 18px; border-color: #00E5CA; border-width: 0px"
        )

        self.join_btn.clicked.connect(lambda: self.join())
        self.cancle_btn.clicked.connect(lambda: self.cancle())

        self.retranslateUi(self)
        QtCore.QMetaObject.connectSlotsByName(self)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))

    def join(self):
        id = self.id_input.text()
        pwd1 = self.pwd1_input.text()
        pwd2 = self.pwd2_input.text()
        email = self.email_input.text()

        flag = self.id_check(id)

        if flag == True:
            flag = self.pwd_check(pwd1, pwd2)

        if flag == True:

            db.member_register(id, pwd1, email, "nicname")
            #db.show(id)

            self.popup = Popup(self)
            self.popup.join_complete()
            self.popup.show()

            self.popup.new_signal.connect(self.cancle)

    def id_check(self, id):
        flag = False

        if self.id_valid(id):  #id 영문자 숫자 검사
            if db.member_id_check(id):  # id 중복 검사
                flag = True
            else:
                self.popup = Popup(self)
                self.popup.id_duplication_check()
                self.popup.show()
        else:
            self.popup = Popup(self)
            self.popup.id_valid_check()
            self.popup.show()
        return flag

    def id_valid(self, id):
        con = True
        for i in id:
            if (ord(i) not in range(48, 58) and ord(i) not in range(65, 91)
                    and ord(i) not in range(97, 123)):
                con = False
                break

        return con

    def pwd_check(self, pwd1, pwd2):
        flag = False

        if pwd1 == pwd2:
            flag = True
        else:
            self.popup = Popup(self)
            self.popup.pwd_coincidence_check()
            self.popup.show()
        return flag

    def cancle(self):
        self.deleteLater()