PyQT5一起学做图书管理系统(5)管理员界面

管理员界面

环境

系统:windows10系统
编辑器:Sublime3
编程语言:python3+pyqt5

前言

还是那句话哈,记得把数据库文件的代码先做好。
用户层面的包括管理员和一般用户,管理员可以添加删除书库中的书,而一般用户只能借书还书,所以两个界面还是有区别的.

UI界面逻辑

在管理员主页,主要有这么几个功能

添加书籍,删除书籍,用户管理(权限管理,或者删除用户),查看书库中的书籍
针对这么几个功能,我们需要做出如下设计:
- 一个添加书本的Dialog,通过一个button启用
- 一个淘汰书本的Dialog,通过一个button启用
- 一个查看用户的Table, 一开始打算用一个button启用的,后来觉得直接放主页也挺好的,所以并没有用button启用(虽然依然放在设计中)
- 查看书库的table,直接在主页显示。

全部代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2018-12-05 21:38:30
# @Author  : Jimy_Fengqi (jmps515@163.com)
# @Link    : https://blog.csdn.net/qiqiyingse/

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

效果图如下:

整个界面分为4个部分,左侧三个按钮,分别对应三个功能,中间是一个table,是书库查询功能

4个功能各自独立,每个功能都是独立的一个模块,这个界面是把这四个功能综合起来。

举个例子,添加书籍功能

当点击添加书籍按钮之后,在本界面是发送一个信号给添加书籍模块,然后调用添加书籍功能


这个界面是几个功能的整合,因此在代码逻辑上就比较简单,主要需要注意的是这个信号槽机制。

后面具体介绍各个模块。

 

 

 

 

 

 

 

posted @ 2019-03-04 17:12  枫奇丶宛南  阅读(169)  评论(0)    收藏  举报