环境
系统:windows10系统
编辑器:PyCharm
编程语言:python3+pyqt5
用户层面的包括管理员和一般用户,管理员可以添加删除书库中的书,而一般用户只能借书还书,所以两个界面还是有区别的.
UI界面逻辑
在管理员主页,主要有这么几个功能
添加书籍,删除书籍,用户管理(权限管理,或者删除用户),查看书库中的书籍
针对这么几个功能,我们需要做出如下设计:
- 一个添加书本的Dialog,通过一个button启用
- 一个淘汰书本的Dialog,通过一个button启用
- 一个查看用户的Table, 一开始打算用一个button启用的,后来觉得直接放主页也挺好的,所以并没有用button启用(虽然依然放在设计中)
- 查看书库的table,直接在主页显示。
完整代码如下:
""""
brief:管理员界面
date:2020-10-01
author:chenyijun
version: python V3.8.1 pyqt5 V5.14.0
"""
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import qdarkstyle
from addBookDialog import addBookDialog
from dropBookDialog import dropBookDialog
from BookStorageViewer import BookStorageViewer
from UserManage import UserManage
import images
class AdminHome(QWidget):
def __init__(self):
super().__init__()
self.setUpUI()
def setUpUI(self):
self.resize(900, 600)
self.setWindowTitle("欢迎使用图书馆管理系统")
self.layout = QHBoxLayout()
self.buttonlayout = QVBoxLayout()
self.setLayout(self.layout)
font = QFont()
font.setPixelSize(16)
self.userManageButton = QPushButton("用户管理")
self.addBookButton = QPushButton("添加书籍")
self.dropBookButton = QPushButton("淘汰书籍")
self.userManageButton.setFont(font)
self.addBookButton.setFont(font)
self.dropBookButton.setFont(font)
self.userManageButton.setFixedWidth(100)
self.userManageButton.setFixedHeight(42)
self.addBookButton.setFixedWidth(100)
self.addBookButton.setFixedHeight(42)
self.dropBookButton.setFixedWidth(100)
self.dropBookButton.setFixedHeight(42)
self.buttonlayout.addWidget(self.addBookButton)
self.buttonlayout.addWidget(self.dropBookButton)
self.buttonlayout.addWidget(self.userManageButton)
self.layout.addLayout(self.buttonlayout)
self.storageView = BookStorageViewer()
self.layout.addWidget(self.storageView)
self.addBookButton.clicked.connect(self.addBookButtonClicked)
self.dropBookButton.clicked.connect(self.dropBookButtonClicked)
self.userManageButton.clicked.connect(self.userManage)
def addBookButtonClicked(self):
addDialog = addBookDialog(self)
addDialog.add_book_success_signal.connect(self.storageView.searchButtonClicked)
addDialog.show()
addDialog.exec_()
def dropBookButtonClicked(self):
dropDialog = dropBookDialog(self)
dropDialog.drop_book_successful_signal.connect(self.storageView.searchButtonClicked)
# dropDialog.drop_book_successful_signal.connect(self.userManageButton.clicked)
dropDialog.show()
dropDialog.exec_()
def userManage(self):
UserDelete = UserManage(self)
UserDelete.show()
UserDelete.exec_()
if __name__ == "__main__":
app = QApplication(sys.argv)
app.setWindowIcon(QIcon(":/images/MainWindow_1.png"))
app.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
mainMindow = AdminHome()
mainMindow.show()
sys.exit(app.exec_())
参考:
https://blog.csdn.net/weixin_38312031/article/details/80087785
https://blog.csdn.net/qiqiyingse/article/details/88124259