PyQt5搭建图书馆管理系统(4)——管理员主页设计

分析#

在管理员主页,为了完成初步的功能,即添加书本,淘汰书本,查看库存,我们需要设计以下:

  • 一个添加书本的Dialog,通过一个button启用
  • 一个淘汰书本的Dialog,通过一个button启用
  • 一个查看库存的Table, 一开始打算用一个button启用的,后来觉得直接放主页也挺好的,所以并没有用button启用(虽然依然放在设计中)

代码#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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

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.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_())

整段代码非常简短,逻辑也很清晰。
1、在setUpUI中有一个淘汰的button,一个添加的button
2、使用信号与槽机制,当点击添加按钮时,启用addBookDialog,点击淘汰按钮时,启用dropBookDialog
3、主页还有一个BookStorageViewer用于查看库存
**注意:**两个diolog和一个Table,我会在接下来的blog中给出

效果#

虽然代码还不全,但也先看看最后效果吧~
这里写图片描述
这里写图片描述

最后附上链接#

项目地址:github仓库链接

评论