#pyqt窗口初始失败 但窗口依旧打开(我想让他关闭)
首先我要获取用户输入的学号,以此来访问数据库获取到此学生的所有信息,并加载这个修改界面上。界面如下
相关代码片段如下:
#修改页面
class UPDATA_infor(QMainWindow):
def init(self):
super(UPDATA_infor, self).init()
self.ui=Ui_MainWindow3()
self.ui.setupUi(self)
self.setWindowTitle("修改数据")
self.conn = pymysql.connect(
host='localhost',
user=f'{user}', # 用户
password=f'{password}', # 密码
db='infromation', # 数据库名
charset='utf8',
)
chushi=self.chushi()
self.ui.pushButton.clicked.connect(self.update_infor)
#界面初始数据加载
def chushi(self):
try:
cursor = self.conn.cursor(cursor=pymysql.cursors.DictCursor)
result = {}
sql1 = f"select * from base_information where stunum='{sel}'"
row1 = cursor.execute(sql1)
result1 = cursor.fetchall()[0]
result.update(result1)
sql2 = f"select sturoom,stubad from rooms where stunum='{sel}' "
row2 = cursor.execute(sql2)
result2 = cursor.fetchall()[0]
result.update(result2)
sql3 = f"select chinese,data_base,math,english from curriculum where stunum='{sel}'"
row3 = cursor.execute(sql3)
result3 = cursor.fetchall()[0]
result.update(result3)
values = list(result.values())
self.ui.lineEdit.setText(str(values[0]))
self.ui.lineEdit_2.setText(str(values[2]))
self.ui.lineEdit_3.setText(str(values[4]))
self.ui.lineEdit_4.setText(str(values[1]))
self.ui.lineEdit_5.setText(str(values[3]))
self.ui.lineEdit_6.setText(str(values[5]))
self.ui.lineEdit_7.setText(str(values[6]))
self.ui.lineEdit_8.setText(str(values[7]))
self.stunum = str(values[0])
self.stuname = str(values[1])
self.stuage = values[2]
self.stugender = str(values[3])
self.stuclass = str(values[4])
self.stutel = str(values[5])
self.sturoom = values[6]
self.stubad = values[7]
if str(values[8]) == "√":
self.ui.checkBox.setChecked(True)
else:
self.ui.checkBox.setChecked(False)
if str(values[9]) == "√":
self.ui.checkBox_2.setChecked(True)
else:
self.ui.checkBox_2.setChecked(False)
if str(values[10]) == "√":
self.ui.checkBox_3.setChecked(True)
else:
self.ui.checkBox_3.setChecked(False)
if str(values[11]) == "√":
self.ui.checkBox_4.setChecked(True)
else:
self.ui.checkBox_4.setChecked(False)
except:
QMessageBox.information(self,"tip","学生不存在!",QMessageBox.Ok)
self.close()