6 PyQT5一起学做图书管理系统添加/删除书籍

PyQT5一起学做图书管理系统(6)添加/删除书籍 环境
系统:系统
编辑器:
编程语言:+pyqt5
前言
本节来实现书籍的添加与删除 , 还是那句话 , 记得首先把数据库模块那一节给完成了 , 这样的话 , 本节就很容易实现
设计逻辑
添加/删除功能都是一个对话框() , 在这个界面填入必要的信息之后 , 执行数据库就OK了
添加功能
对于添加逻辑 , 需要添加以下信息
- 书名
- 书号
- 作者名
- 分类(分类已经规定 , 只需要选择对应的种类就可以了)
- 出版社
- 出版日期
- 添加的数量
初始化
首先初始化数据库 , 然后初始化UI界面
class addBookDialog(QDialog):add_book_success_signal = pyqtSignal()def __init__(self, parent=None):super(addBookDialog, self).__init__(parent)self.setUpUI()self.setWindowModality(Qt.WindowModal)self.bookdb=BookDbManager()self.addordropdb=AddOrDropManager()self.setWindowTitle("添加书籍")
初始化UI界面
书籍类别中规定好图书的分类 , 然后添加各个信息的lable和 , 接着设计好字体大小颜色 , 把各个控件有序的放好 , 最后为添加按钮绑定监听事件 。
def setUpUI(self):# 书名 , 书号 , 作者 , 分类 , 添加数量.出版社,出版日期# 书籍分类:哲学类、社会科学类、政治类、法律类、军事类、经济类、文化类、教育类、体育类、语言文字类、艺术类、历史类、地理类、天文学类、生物学类、医学卫生类、农业类BookCategory = ["哲学", "社会科学", "政治", "法律", "军事", "经济", "文化", "教育", "体育", "语言文字", "艺术", "历史", "地理", "天文学", "生物学", "医学卫生", "农业"]self.resize(300, 400)self.layout = QFormLayout()self.setLayout(self.layout)# Label控件self.titlelabel = QLabel("添加书籍")self.bookNameLabel = QLabel("书名:")self.bookIdLabel = QLabel("书号:")self.authNameLabel = QLabel("作者:")self.categoryLabel = QLabel("分类:")self.publisherLabel = QLabel("出 版 社:")self.publishDateLabel = QLabel("出版日期:")self.addNumLabel = QLabel("添加数量:")# button控件self.addBookButton = QPushButton("添 加")# lineEdit控件self.bookNameEdit = QLineEdit()self.bookIdEdit = QLineEdit()self.authNameEdit = QLineEdit()self.categoryComboBox = QComboBox()self.categoryComboBox.addItems(BookCategory)self.publisherEdit = QLineEdit()self.publishTime = QDateTimeEdit()self.publishTime.setDisplayFormat("yyyy-MM-dd")# self.publishDateEdit = QLineEdit()self.addNumEdit = QLineEdit()self.bookNameEdit.setMaxLength(10)self.bookIdEdit.setMaxLength(6)self.authNameEdit.setMaxLength(10)self.publisherEdit.setMaxLength(10)self.addNumEdit.setMaxLength(12)self.addNumEdit.setValidator(QIntValidator())# 添加进formlayoutself.layout.addRow("", self.titlelabel)self.layout.addRow(self.bookNameLabel, self.bookNameEdit)self.layout.addRow(self.bookIdLabel, self.bookIdEdit)self.layout.addRow(self.authNameLabel, self.authNameEdit)self.layout.addRow(self.categoryLabel, self.categoryComboBox)self.layout.addRow(self.publisherLabel, self.publisherEdit)self.layout.addRow(self.publishDateLabel, self.publishTime)self.layout.addRow(self.addNumLabel, self.addNumEdit)self.layout.addRow("", self.addBookButton)# 设置字体font = QFont()font.setPixelSize(20)self.titlelabel.setFont(font)font.setPixelSize(14)self.bookNameLabel.setFont(font)self.bookIdLabel.setFont(font)self.authNameLabel.setFont(font)self.categoryLabel.setFont(font)self.publisherLabel.setFont(font)self.publishDateLabel.setFont(font)self.addNumLabel.setFont(font)self.bookNameEdit.setFont(font)self.bookIdEdit.setFont(font)self.authNameEdit.setFont(font)self.publisherEdit.setFont(font)self.publishTime.setFont(font)self.categoryComboBox.setFont(font)self.addNumEdit.setFont(font)# button设置font.setPixelSize(16)self.addBookButton.setFont(font)self.addBookButton.setFixedHeight(32)self.addBookButton.setFixedWidth(140)# 设置间距self.titlelabel.setMargin(8)self.layout.setVerticalSpacing(10)self.addBookButton.clicked.connect(self.addBookButtonCicked)