from PyQt5.QtWidgets import QApplication, QMainWindow,QMessageBox #?第1020行左右的①②中要用前两个模块,消息提示框要用第三个模块,所以要导入
#?如果用from PyQt5 import QtWidgets.QApplication,则下面所有的QApplication都要替换为QtWidgets.QApplication
from PyQt5.QtGui import QPalette, QBrush, QPixmap #?给界面添加背景图时要用,第81-84行为添加背景代码
from PyQt5 import QtCore, QtWidgets,QtGui #QtGui没有QtWidgets等亮,说明QtGui没被直接用上,但是第二行可看出它所包含的模块被使用了
import sys#?第1020行左右的①③中要用
class data0:#默认管理员账号及密码
name={"1":"1"}#用字典存数据
information=[]
#登录界面(已完成)
# #初始类名都是Ui_Form,多个类时为区分需将其重命名,初始继承的父类是object,这里改成QMainWindow
class Login(QMainWindow):
def __init__(self):#一开始没有这个,要加上
super(Login,self).__init__()#super里的Login即类名
self.setupUi(self)
self.retranslateUi(self)
def setupUi(self, MainWindow):#?如第81-84行为添加背景代码 登录界面的控件、布局等的设置,qt designer自动生成,也可自己设置,如第81-84行为添加背景代码
MainWindow.setObjectName("MainWindow")
MainWindow.resize(839, 630)#窗口尺寸前为横长度,后为纵长度
MainWindow.setAutoFillBackground(False)
MainWindow.setStyleSheet("")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(390, 170, 131, 31))
self.lineEdit_2.setObjectName("lineEdit_2")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(320, 170, 51, 31))
self.label.setStyleSheet("font: 14pt \"Arial\";")
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(320, 230, 51, 31))
self.label_2.setStyleSheet("font: 14pt \"Arial\";")
self.label_2.setObjectName("label_2")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(380, 340, 93, 28))
self.pushButton.setStyleSheet("font: 14pt \"Arial\";")
self.pushButton.setObjectName("pushButton")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(290, 0, 281, 91))
self.label_3.setStyleSheet("font: 20pt \"Arial\";")
self.label_3.setObjectName("label_3")
self.radioButton = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton.setGeometry(QtCore.QRect(380, 270, 71, 21))
self.radioButton.setStyleSheet("font: 7pt \"Arial\";")
self.radioButton.setObjectName("radioButton")
self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_3.setGeometry(QtCore.QRect(390, 230, 131, 31))
self.lineEdit_3.setObjectName("lineEdit_3")
self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_2.setGeometry(QtCore.QRect(460, 270, 71, 21))
self.radioButton_2.setStyleSheet("font: 7pt \"Arial\";")
self.radioButton_2.setObjectName("radioButton_2")
self.lineEdit_4 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_4.setGeometry(QtCore.QRect(370, 300, 121, 21))
self.lineEdit_4.setStyleSheet("color: rgb(255, 0, 0);")
self.lineEdit_4.setObjectName("lineEdit_4")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(390, 230, 131, 31))
self.label_4.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_4.setObjectName("label_4")
self.label_4.raise_()
self.lineEdit_2.raise_()
self.label.raise_()
self.label_2.raise_()
self.pushButton.raise_()
self.label_3.raise_()
self.radioButton.raise_()
self.lineEdit_3.raise_()
self.radioButton_2.raise_()
self.lineEdit_4.raise_()
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.menuBar = QtWidgets.QMenuBar(MainWindow)
self.menuBar.setGeometry(QtCore.QRect(0, 0, 839, 26))
self.menuBar.setObjectName("menuBar")
self.menu = QtWidgets.QMenu(self.menuBar)
self.menu.setObjectName("menu")
MainWindow.setMenuBar(self.menuBar)
self.menuBar.addAction(self.menu.menuAction())
# 背景设置部分
palette = QPalette()
palette.setBrush(QPalette.Background, QBrush(QPixmap("D:\p1.jpg").scaled(MainWindow.width(),MainWindow.height())))#"D:\p1.jpg"是图片路径
# ?加.scaled(MainWindow.width(),MainWindow.height())可将图片适应界面大小,但不能适应拉伸窗口,即使你进行了布局设置,里面的MainWindow就是1020行左右的②
MainWindow.setPalette(palette)#?MainWindow就是1020行左右的②
self.retranslateUi(MainWindow)
self.radioButton.clicked.connect(self.lineEdit_3.hide)#?自己写,也可以designer中设置信号与槽
self.radioButton_2.clicked.connect(self.lineEdit_3.show)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.lineEdit_4.hide()
#将控件动作(信号)联接到方法(槽函数)
self.pushButton.clicked.connect(self.firstpage_)#?自己写,也可以designer中设置信号与槽,里面的函数是自己定义
with open("D:/StudentScore.txt","a") as f: # 创建一个文件存放学生成绩
f.close()
with open("D:/Manage.txt","a") as f: # 创建一个文件存放管理员信息
f.close()
def firstpage_(self):#实现管理员信息核对及界面跳转至首页
book=0
zhanghao=self.lineEdit_2.text()#从文本框中接收管理员账号
mima = self.lineEdit_3.text()#从文本框中接收管理员密码
if zhanghao=='' or mima =='':#账号或密码为空时报错
QMessageBox.warning(ui_log, " ","账号或密码不能为空")
book=1
elif zhanghao in data0.name.keys() and data0.name[zhanghao]==mima:#输入的为默认账号和密码,可以登录
MainWindow.close()#当前这个登录窗口关闭
ui_fir.show()#首页窗口打开
self.lineEdit_4.hide()
else:
f = open("D:/Manage.txt", "r")
ff = list(f.readlines())
fi = len(ff)
for i in range(0, fi, 2):
#输入的为添加的管理员的账号和密码,可以登录
if '账号:'+zhanghao + '\n' == ff[i] and '密码:'+mima + '\n' == ff[i+1]:
MainWindow.close()
ui_fir.show()
self.lineEdit_4.hide()
book=1
break
if book==0:#book==0说明账号或密码错误
self.lineEdit_4.show()#该文本框显示"账号或密码错误!"
def retranslateUi(self, MainWindow):#登录界面的控件、布局等的设置
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", " "))#?第二个参数原本是"MainWindow"(窗口上会显示"MainWindow"字符串),而不是" "(一个空格),不要设置为""(会自动变成"python"字符串)
self.label.setText(_translate("MainWindow", "账号:"))
self.label_2.setText(_translate("MainWindow", "密码:"))
self.pushButton.setText(_translate("MainWindow", "登录"))
self.label_3.setText(_translate("Mai
没有合适的资源?快使用搜索试试~ 我知道了~
学生管理系统(python+pyqt5)
共10个文件
xml:3个
py:3个
ui:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 41 浏览量
2023-06-15
06:55:49
上传
评论
收藏 13KB ZIP 举报
温馨提示
学生管理系统(python+pyqt5)
资源推荐
资源详情
资源评论
收起资源包目录
python_project-master.zip (10个子文件)
python_project-master
main.py 0B
clear_test000.ui 2KB
.idea
misc.xml 189B
inspectionProfiles
profiles_settings.xml 174B
modules.xml 280B
.gitignore 47B
pythonProject0.iml 389B
test01.py 59KB
clear_test000.py 2KB
MainWindow - untitled 2KB
共 10 条
- 1
资源评论
Roc-xb
- 粉丝: 12w+
- 资源: 8207
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功