卑微小丁 2021-03-10 16:57 采纳率: 100%
浏览 81
已结题

pyqt5登录界面,为登录失败后第二次登录就会异常退出

 错误详情

代码

import sys

import MySQLdb
from PyQt5.QtWidgets import QWidget, QApplication

from RfidAttendance.login_ui import Ui_Dialog

db = MySQLdb.connect("localhost", "root", "root", "contact", charset='utf8')
cursor = db.cursor()


class login(QWidget, Ui_Dialog):
    def __init__(self, parent=None):
        super(login, self).__init__(parent)
        self.setupUi(self)
        self.retranslateUi(self)
        self.pushButton.clicked.connect(self.login)

    def init(self):
        self.lineEdit.clear()
        self.lineEdit_2.clear()

    def login(self):
        if self.radioButton.isChecked():
            accnum = self.lineEdit.text()
            password = self.lineEdit_2.text()
            sql = "select accnum from account "
            cursor.execute(sql)
            AccnumResults = cursor.fetchall()
            print(AccnumResults)
            AccnumList = []
            AccnumList.clear()
            for i in AccnumResults:
                AccnumList.append(i[0])
            if accnum not in AccnumList:
                print("登录失败,无此用户!")
                self.init()
            else:
                sql2 = "select password from account where accnum = '%s'" % accnum
                cursor.execute(sql2)
                PasswordResults = cursor.fetchall()
                print(PasswordResults)
                PasswordList = []
                PasswordList.clear()
                for i in PasswordResults:
                    PasswordList.append(i[0])
                if password not in PasswordList:
                    print("请检查密码")
                    self.init()
            cursor.close()
        elif self.radioButton_2.isChecked():
            accnum = self.lineEdit.text()
            password = self.lineEdit_2.text()
            sql = "select accnum from administrators "
            cursor.execute(sql)
            AccnumResults = cursor.fetchall()
            print(AccnumResults)
            AccnumList = []
            AccnumList.clear()
            for i in AccnumResults:
                AccnumList.append(i[0])
            print(AccnumList)
            if accnum not in AccnumList:
                print("登录失败,无此用户!")
                self.init()
            else:
                sql2 = "select password from administrators where accnum = '%s'" % accnum
                cursor.execute(sql2)
                PasswordResults = cursor.fetchall()
                print(PasswordResults)
                PasswordList = []
                PasswordList.clear()
                for i in PasswordResults:
                    PasswordList.append(i[0])
                if password not in PasswordList:
                    print("请检查密码")
                    self.init()
                else:
                    print("登录成功")
                    self.init()
            cursor.close()
        else:
            print("请选择人员类别")
            self.init()


if __name__ == "__main__":
    app = QApplication(sys.argv)
    log = login()
    log.show()
    sys.exit(app.exec_())
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-07 17:20
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月23日
  • 已采纳回答 5月15日

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失