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 ([email protected])
# @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個功能各自獨立,每個功能都是獨立的一個模塊,這個界面是把這四個功能綜合起來。

舉個例子,添加書籍功能

當點擊添加書籍按鈕之後,在本界面是發送一個信號給添加書籍模塊,然後調用添加書籍功能


這個界面是幾個功能的整合,因此在代碼邏輯上就比較簡單,主要需要注意的是這個信號槽機制。

後面具體介紹各個模塊。

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章