'''
管理员界面,可以进行的操作是:专家、药品、献血信息的增删改查以及已报名学生的查询。
'''
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from execute_db import *
from messagebox import *
from style_sheet import *
class adminWindow(QWidget):
def __init__(self):
super(adminWindow, self).__init__()
self.setFixedSize(1250, 800) # 设置界面大小
self.admin_layoutall = QVBoxLayout()
self.admin_layout = QHBoxLayout() # 界面主布局:垂直
self.setWindowOpacity(0.9) # 窗口透明度
# 定义左边list和右边stackwidget
self.listdoctor = QListWidget()
self.admin_stack = QStackedWidget()
self.table_doctor = QTableWidget()
self.table_blood = QTableWidget()
self.table_drug = QTableWidget()
# self.table_medpre = QTableWidget()
self.setLayout(self.admin_layoutall) # 显示布局
self.windowTop() # 窗体无边框,添加最小化和关闭按钮
self.setupAdminUi()
def windowTop(self):
self.setWindowFlags(Qt.FramelessWindowHint) # 窗口无边框
sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(20)
sizePolicy.setVerticalStretch(20)
spacerItem1 = QSpacerItem(5, 20, QSizePolicy.Maximum, QSizePolicy.Minimum)
sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(30)
spacerItem2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
self.pushButton = QPushButton()
sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(20)
sizePolicy.setVerticalStretch(20)
sizePolicy.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth())
self.pushButton.setSizePolicy(sizePolicy)
self.pushButton.setMaximumSize(QSize(20, 20))
self.pushButton.setObjectName("pushButton")
self.pushButton.clicked.connect(lambda: self.on_pushButton_clicked())
spacerItem4 = QSpacerItem(8, 20, QSizePolicy.Maximum, QSizePolicy.Minimum)
self.pushButton_3 = QPushButton()
sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(20)
sizePolicy.setVerticalStretch(20)
sizePolicy.setHeightForWidth(self.pushButton_3.sizePolicy().hasHeightForWidth())
self.pushButton_3.setSizePolicy(sizePolicy)
self.pushButton_3.setMaximumSize(QSize(20, 20))
self.pushButton_3.setObjectName("pushButton_3")
self.pushButton_3.clicked.connect(lambda: self.on_pushButton_3_clicked())
spacerItem5 = QSpacerItem(5, 20, QSizePolicy.Maximum, QSizePolicy.Minimum)
self._close_max_min_icon()
subhbox = QHBoxLayout()
subhbox.addItem(spacerItem1)
subhbox.addItem(spacerItem2)
subhbox.addWidget(self.pushButton)
subhbox.addItem(spacerItem4)
subhbox.addWidget(self.pushButton_3)
subhbox.addItem(spacerItem5)
self.admin_layoutall.addLayout(subhbox)
# 自定义最小化和关闭按钮的样式
def _close_max_min_icon(self):
self.pushButton_3.setText('×')
self.pushButton.setText('—')
self.pushButton.setStyleSheet('''QPushButton{background:rgb(238, 0, 0);
color: white;
border-radius:5px;}
QPushButton:hover{background:rgb(255, 215, 0);}''')
self.pushButton_3.setStyleSheet('''QPushButton{background:rgb(238, 0, 0);
border-radius:5px;
color: white}
QPushButton:hover{background:rgb(255, 215, 0);}''')
# 重写关闭、最小化、移动、点击事件
@pyqtSlot()
def on_pushButton_3_clicked(self):
# 关闭程序
self.close()
@pyqtSlot()
def on_pushButton_clicked(self):
# 最小化
self.showMinimized()
def mouseMoveEvent(self, e: QMouseEvent): # 重写移动事件
self._endPos = e.pos() - self._startPos
self.move(self.pos() + self._endPos)
def mousePressEvent(self, e: QMouseEvent):
if e.button() == Qt.LeftButton:
self._isTracking = True
self._startPos = QPoint(e.x(), e.y())
def mouseReleaseEvent(self, e: QMouseEvent):
if e.button() == Qt.LeftButton:
self._isTracking = False
self._startPos = None
self._endPos = None
def setupAdminUi(self):
admin_l_layout = QVBoxLayout() # 左侧布局:水平
admin_l_layout.setContentsMargins(20, 0, 0, 20)
label_l_title = QLabel('管理员操作')
label_l_title.setStyleSheet(label_style_title())
label_l_title.setAlignment(Qt.AlignCenter)
# 隐藏list的滚动条
self.listdoctor.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
# 设置list的样式
self.listdoctor.setStyleSheet(list_style())
self.listdoctor.setFixedWidth(150)
# 将控件加入sub布局,sub布局加入主布局
self.admin_layout.addLayout(admin_l_layout)
self.admin_layout.addWidget(self.admin_stack)
admin_l_layout.addWidget(label_l_title)
admin_l_layout.addWidget(self.listdoctor)
self.admin_layoutall.addLayout(self.admin_layout)
# 数据库表头名称
self.doctorhead = ['Dsection', 'Ddate', 'Dtime', 'Droom', 'Dname',
'Dhospital', 'Dadv']
self.bloodhead = ['Bdate', 'Btime', 'Bplace', 'Blimit', 'Bnotice',
'Breward']
self.drughead = ['D_no', 'D_name', 'D_take', 'D_eff', 'D_inv']
# 定义list中item的名字
names = ['专家信息管理', '献血信息管理', '药品管理']
# 创建list中的item
for name in names:
item = QListWidgetItem(name)
item.setTextAlignment(Qt.AlignCenter) # 居中
item.setSizeHint(QSize(15, 40)) # 设置大小
self.listdoctor.addItem(item)
# 创建3个页面
for i in range(1, 4):
exec("self.admin_stack{}=QWidget()".format(i))
exec("self.admin_stack{}ui()".format(i))
exec("self.admin_stack.addWidget(self.admin_stack{})".format(i))
# stack页面与list按钮关联
self.listdoctor.currentRowChanged.connect(self.stackDisplay)
# 功能:list中的按钮与页面关联
def stackDisplay(self):
try:
i = self.listdoctor.currentRow() # 页面索引号
self.admin_stack.setCurrentIndex(i) # 设置当前索引地址
except:
pass
# 页面1:专家信息管理
def admin_stack1ui(self):
# 定义布局/控件
layout = QVBoxLayout()
sublayout = QHBoxLayout()
sublayout1 = QHBoxLayout()
label_title = QLabel('SUFE专家坐诊信息')
label_title.setAlignment(Qt.AlignCenter)
label1 = QLabel('查询专家信息:')
label1.setFixedWidth(150)
edit1 = QLineEdit()
edit1.setFixedHeight(40)
edit1.setAlignment(Qt.AlignCenter)
btn_search = QPushButton('查询')
btn_back = QPushButton('返回')
btn_search.clicked.connect(lambda : self.btn_search_func(edit1)) # 查询按钮连接响应函数
btn_back.clicked.connect(lambda : self.btn_back_func(edit1)) # 返回按钮连接响应函数
btn_search.
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
简易大学校医室管理系统.rar (14个子文件)
简易SUFE校医室管理系统
项目文件说明.png 45KB
btnQSSforChineaseRedLogin.qss 387B
MySQL建表说明.png 38KB
btnQSSforChineaseSmallred.qss 268B
style_sheet.py 4KB
QliststackQSS.qss 383B
btnQSSforChineaseBlue.qss 401B
messagebox.py 4KB
execute_db.py 1KB
btnQSSforChineaseRed.qss 383B
admin.py 37KB
login.py 9KB
student.py 26KB
sufe_Clinic.jpg 15KB
共 14 条
- 1
小小の灰色脑细胞
- 粉丝: 111
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1