from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, QMetaObject, QObject, QPoint, QRect, QSize, QTime, QUrl, Qt) from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont, QFontDatabase, QGradient, QIcon, QImage, QKeySequence, QLinearGradient, QPainter, QPalette, QPixmap, QRadialGradient, QTransform) from PySide6.QtWidgets import (QApplication, QCheckBox, QDateEdit, QHeaderView, QLabel, QLineEdit, QPushButton, QSizePolicy, QTabWidget, QTableWidget, QTableWidgetItem, QVBoxLayout, QMessageBox, QWidget) from PySide6 import QtCore, QtGui, QtWidgets from connect import * import time cursor, conn = connect() class Ui_bookcontrol(object): def setupUi(self, bookadmin): bookadmin.setObjectName("bookadmin") bookadmin.resize(846, 550) self.tabWidget = QtWidgets.QTabWidget(bookadmin) self.tabWidget.setGeometry(QtCore.QRect(20, 20, 811, 515)) self.tabWidget.setObjectName("tabWidget") self.tab = QtWidgets.QWidget() self.tab.setObjectName("tab") self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.tab) self.verticalLayout_2.setObjectName("verticalLayout_2") self.verticalLayout = QtWidgets.QVBoxLayout() self.verticalLayout.setObjectName("verticalLayout") self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.label_2 = QtWidgets.QLabel(self.tab) self.label_2.setObjectName("label_2") self.horizontalLayout.addWidget(self.label_2) self.readerid = QtWidgets.QLineEdit(self.tab) self.readerid.setObjectName("readerid") self.horizontalLayout.addWidget(self.readerid) self.label = QtWidgets.QLabel(self.tab) self.label.setObjectName("label") self.horizontalLayout.addWidget(self.label) self.readername = QtWidgets.QLineEdit(self.tab) self.readername.setObjectName("readername") self.horizontalLayout.addWidget(self.readername) self.label_3 = QtWidgets.QLabel(self.tab) self.label_3.setObjectName("label_3") self.horizontalLayout.addWidget(self.label_3) self.unit = QtWidgets.QLineEdit(self.tab) self.unit.setObjectName("unit") self.horizontalLayout.addWidget(self.unit) self.verticalLayout.addLayout(self.horizontalLayout) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.select = QtWidgets.QPushButton(self.tab) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.select.sizePolicy().hasHeightForWidth()) self.select.setSizePolicy(sizePolicy) self.select.setObjectName("select") self.horizontalLayout_2.addWidget(self.select) self.selectall = QtWidgets.QPushButton(self.tab) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.selectall.sizePolicy().hasHeightForWidth()) self.selectall.setSizePolicy(sizePolicy) self.selectall.setObjectName("selectall") self.horizontalLayout_2.addWidget(self.selectall) self.verticalLayout.addLayout(self.horizontalLayout_2) self.readerinfors = QtWidgets.QTableWidget(self.tab) self.readerinfors.setObjectName("readerinfors") self.readerinfors.setColumnCount(8) self.readerinfors.setRowCount(0) item = QtWidgets.QTableWidgetItem() self.readerinfors.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.readerinfors.setHorizontalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.readerinfors.setHorizontalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() self.readerinfors.setHorizontalHeaderItem(3, item) item = QtWidgets.QTableWidgetItem() self.readerinfors.setHorizontalHeaderItem(4, item) item = QtWidgets.QTableWidgetItem() self.readerinfors.setHorizontalHeaderItem(5, item) item = QtWidgets.QTableWidgetItem() self.readerinfors.setHorizontalHeaderItem(6, item) item = QtWidgets.QTableWidgetItem() self.readerinfors.setHorizontalHeaderItem(7, item) self.verticalLayout.addWidget(self.readerinfors) self.verticalLayout_2.addLayout(self.verticalLayout) self.tabWidget.addTab(self.tab, "") self.tab_2 = QtWidgets.QWidget() self.tab_2.setObjectName("tab_2") self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.tab_2) self.verticalLayout_5.setObjectName("verticalLayout_5") self.verticalLayout_3 = QtWidgets.QVBoxLayout() self.verticalLayout_3.setObjectName("verticalLayout_3") self.horizontalLayout_13 = QtWidgets.QHBoxLayout() self.horizontalLayout_13.setObjectName("horizontalLayout_13") self.horizontalLayout_3 = QtWidgets.QHBoxLayout() self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.label_4 = QtWidgets.QLabel(self.tab_2) self.label_4.setObjectName("label_4") self.horizontalLayout_3.addWidget(self.label_4) self.bookid = QtWidgets.QLineEdit(self.tab_2) self.bookid.setObjectName("bookid") self.horizontalLayout_3.addWidget(self.bookid) self.horizontalLayout_13.addLayout(self.horizontalLayout_3) self.horizontalLayout_5 = QtWidgets.QHBoxLayout() self.horizontalLayout_5.setObjectName("horizontalLayout_5") self.label_5 = QtWidgets.QLabel(self.tab_2) self.label_5.setObjectName("label_5") self.horizontalLayout_5.addWidget(self.label_5) self.bookname = QtWidgets.QLineEdit(self.tab_2) self.bookname.setObjectName("bookname") self.horizontalLayout_5.addWidget(self.bookname) self.horizontalLayout_13.addLayout(self.horizontalLayout_5) self.horizontalLayout_12 = QtWidgets.QHBoxLayout() self.horizontalLayout_12.setObjectName("horizontalLayout_12") self.label_6 = QtWidgets.QLabel(self.tab_2) self.label_6.setObjectName("label_6") self.horizontalLayout_12.addWidget(self.label_6) self.author = QtWidgets.QLineEdit(self.tab_2) self.author.setObjectName("author") self.horizontalLayout_12.addWidget(self.author) self.horizontalLayout_13.addLayout(self.horizontalLayout_12) self.horizontalLayout_8 = QtWidgets.QHBoxLayout() self.horizontalLayout_8.setObjectName("horizontalLayout_8") self.label_7 = QtWidgets.QLabel(self.tab_2) self.label_7.setObjectName("label_7") self.horizontalLayout_8.addWidget(self.label_7) self.type = QtWidgets.QLineEdit(self.tab_2) self.type.setObjectName("type") self.horizontalLayout_8.addWidget(self.type) self.horizontalLayout_13.addLayout(self.horizontalLayout_8) self.verticalLayout_3.addLayout(self.horizontalLayout_13) self.horizontalLayout_14 = QtWidgets.QHBoxLayout() self.horizontalLayout_14.setObjectName("horizontalLayout_14") self.horizontalLayout_4 = QtWidgets.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") self.label_8 = QtWidgets.QLabel(self.tab_2) self.label_8.setObjectName("label_8") self.horizontalLayout_4.addWidget(self.label_8) self.prize = QtWidgets.QLineEdit(self.tab_2) self.prize.setObjectName("prize") self.horizontalLayout_4.addWidget(self.prize) self.horizontalLayout_14.addLayout(self.horizontalLayout_4) self.horizontalLayout_6 = QtWidgets.QHBoxLayout() self.horizontalLayout_6.setObjectName("horizontalLayout_6") self.label_9 = QtWidgets.QLabel(self.tab_2) self.label_9.setObjectName("label_9") self.horizontalLayout_6.addWidget(self.label_9) self.press = QtWidgets.QLineEdit(self.tab_2) self.press.setObjectName("press") self.horizontalLayout_6.addWidget(self.press) self.horizontalLayout_14.addLayout(self.horizontalLayout_6) self.horizontalLayout_10 = QtWidgets.QHBoxLayout() self.horizontalLayout_10.setObjectName("horizontalLayout_10") self.label_12 = QtWidgets.QLabel(self.tab_2) self.label_12.setObjectName("label_12") self.horizontalLayout_10.addWidget(self.label_12) self.totalnum = QtWidgets.QLineEdit(self.tab_2) self.totalnum.setObjectName("totalnum") self.horizontalLayout_10.addWidget(self.totalnum) self.horizontalLayout_14.addLayout(self.horizontalLayout_10) self.horizontalLayout_9 = QtWidgets.QHBoxLayout() self.horizontalLayout_9.setObjectName("horizontalLayout_9") self.label_11 = QtWidgets.QLabel(self.tab_2) self.label_11.setObjectName("label_11") self.horizontalLayout_9.addWidget(self.label_11) self.num = QtWidgets.QLineEdit(self.tab_2) self.num.setObjectName("num") self.horizontalLayout_9.addWidget(self.num) self.horizontalLayout_14.addLayout(self.horizontalLayout_9) self.verticalLayout_3.addLayout(self.horizontalLayout_14) self.horizontalLayout_17 = QtWidgets.QHBoxLayout() self.horizontalLayout_17.setObjectName("horizontalLayout_17") self.horizontalLayout_15 = QtWidgets.QHBoxLayout() self.horizontalLayout_15.setObjectName("horizontalLayout_15") self.horizontalLayout_7 = QtWidgets.QHBoxLayout() self.horizontalLayout_7.setObjectName("horizontalLayout_7") self.label_10 = QtWidgets.QLabel(self.tab_2) self.label_10.setObjectName("label_10") self.horizontalLayout_7.addWidget(self.label_10) self.abstract_2 = QtWidgets.QLineEdit(self.tab_2) self.abstract_2.setObjectName("abstract_2") self.horizontalLayout_7.addWidget(self.abstract_2) self.horizontalLayout_15.addLayout(self.horizontalLayout_7) self.horizontalLayout_11 = QtWidgets.QHBoxLayout() self.horizontalLayout_11.setObjectName("horizontalLayout_11") self.label_13 = QtWidgets.QLabel(self.tab_2) self.label_13.setObjectName("label_13") self.horizontalLayout_11.addWidget(self.label_13) self.bookshelf = QtWidgets.QLineEdit(self.tab_2) self.bookshelf.setObjectName("bookshelf") self.horizontalLayout_11.addWidget(self.bookshelf) self.horizontalLayout_15.addLayout(self.horizontalLayout_11) self.horizontalLayout_17.addLayout(self.horizontalLayout_15) self.horizontalLayout_16 = QtWidgets.QHBoxLayout() self.horizontalLayout_16.setObjectName("horizontalLayout_16") self.addbook = QtWidgets.QPushButton(self.tab_2) self.addbook.setObjectName("addbook") self.horizontalLayout_16.addWidget(self.addbook) self.deletebook = QtWidgets.QPushButton(self.tab_2) self.deletebook.setObjectName("deletebook") self.horizontalLayout_16.addWidget(self.deletebook) self.alterbook = QtWidgets.QPushButton(self.tab_2) self.alterbook.setObjectName("alterbook") self.horizontalLayout_16.addWidget(self.alterbook) self.horizontalLayout_17.addLayout(self.horizontalLayout_16) self.verticalLayout_3.addLayout(self.horizontalLayout_17) self.bookinfos = QtWidgets.QTableWidget(self.tab_2) self.bookinfos.setObjectName("bookinfos") self.bookinfos.setColumnCount(11) self.bookinfos.setRowCount(0) item = QtWidgets.QTableWidgetItem() self.bookinfos.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.bookinfos.setHorizontalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.bookinfos.setHorizontalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() self.bookinfos.setHorizontalHeaderItem(3, item) item = QtWidgets.QTableWidgetItem() self.bookinfos.setHorizontalHeaderItem(4, item) item = QtWidgets.QTableWidgetItem() self.bookinfos.setHorizontalHeaderItem(5, item) item = QtWidgets.QTableWidgetItem() self.bookinfos.setHorizontalHeaderItem(6, item) item = QtWidgets.QTableWidgetItem() self.bookinfos.setHorizontalHeaderItem(7, item) item = QtWidgets.QTableWidgetItem() self.bookinfos.setHorizontalHeaderItem(8, item) item = QtWidgets.QTableWidgetItem() self.bookinfos.setHorizontalHeaderItem(9, item) item = QtWidgets.QTableWidgetItem() self.bookinfos.setHorizontalHeaderItem(10, item) self.verticalLayout_3.addWidget(self.bookinfos) self.verticalLayout_5.addLayout(self.verticalLayout_3) self.tabWidget.addTab(self.tab_2, "") self.tab_3 = QtWidgets.QWidget() self.tab_3.setObjectName("tab_3") self.iteminfo = QtWidgets.QTableWidget(self.tab_3) self.iteminfo.setGeometry(QtCore.QRect(80, 40, 421, 384)) self.iteminfo.setObjectName("iteminfo") self.iteminfo.setColumnCount(4) self.iteminfo.setRowCount(0) item = QtWidgets.QTableWidgetItem() self.iteminfo.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.iteminfo.setHorizontalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.iteminfo.setHorizontalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() self.iteminfo.setHorizontalHeaderItem(3, item) self.layoutWidget = QtWidgets.QWidget(self.tab_3) self.layoutWidget.setGeometry(QtCore.QRect(610, 160, 95, 301)) self.layoutWidget.setObjectName("layoutWidget") self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.layoutWidget) self.verticalLayout_4.setContentsMargins(0, 0, 0, 0) self.verticalLayout_4.setObjectName("verticalLayout_4") self.yes = QtWidgets.QPushButton(self.layoutWidget) self.yes.setObjectName("yes") self.verticalLayout_4.addWidget(self.yes) self.no = QtWidgets.QPushButton(self.layoutWidget) self.no.setObjectName("no") self.verticalLayout_4.addWidget(self.no) self.refresh = QtWidgets.QPushButton(self.layoutWidget) self.refresh.setObjectName("refresh") self.verticalLayout_4.addWidget(self.refresh) self.tabWidget.addTab(self.tab_3, "") self.retranslateUi(bookadmin) self.tabWidget.setCurrentIndex(2) QtCore.QMetaObject.connectSlotsByName(bookadmin) self.show_all_books() self.selectall.clicked.connect(self.show_all_readers) self.select.clicked.connect(self.readerselect) self.addbook.clicked.connect(self.add_book) self.deletebook.clicked.connect(self.drop_book) self.alterbook.clicked.connect(self.update_book) self.bookinfos.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) self.bookinfos.setEditTriggers(QtWidgets.QAbstractItemView.EditKeyPressed) self.bookinfos.activated.connect(self.displayinfo) self.show_all_items() self.iteminfo.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) self.iteminfo.setEditTriggers(QtWidgets.QAbstractItemView.EditKeyPressed) self.yes.clicked.connect(self.pizhun) self.no.clicked.connect(self.bohui) self.refresh.clicked.connect(self.show_all_items) def retranslateUi(self, bookadmin): _translate = QtCore.QCoreApplication.translate bookadmin.setWindowTitle(_translate("bookadmin", "图书管理员操作界面")) self.label_2.setText(_translate("bookadmin", "读者ID")) self.label.setText(_translate("bookadmin", "姓名")) self.label_3.setText(_translate("bookadmin", "单位")) self.select.setText(_translate("bookadmin", "查询")) self.selectall.setText(_translate("bookadmin", "显示所有")) item = self.readerinfors.horizontalHeaderItem(0) item.setText(_translate("bookadmin", "读者ID")) item = self.readerinfors.horizontalHeaderItem(1) item.setText(_translate("bookadmin", "姓名")) item = self.readerinfors.horizontalHeaderItem(2) item.setText(_translate("bookadmin", "性别")) item = self.readerinfors.horizontalHeaderItem(3) item.setText(_translate("bookadmin", "单位")) item = self.readerinfors.horizontalHeaderItem(4) item.setText(_translate("bookadmin", "读者类型")) item = self.readerinfors.horizontalHeaderItem(5) item.setText(_translate("bookadmin", "可借册数")) item = self.readerinfors.horizontalHeaderItem(6) item.setText(_translate("bookadmin", "在借册数")) item = self.readerinfors.horizontalHeaderItem(7) item.setText(_translate("bookadmin", "欠款")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("bookadmin", "查询读者信息")) self.label_4.setText(_translate("bookadmin", "书号")) self.label_5.setText(_translate("bookadmin", "书名")) self.label_6.setText(_translate("bookadmin", "作者")) self.label_7.setText(_translate("bookadmin", "类型")) self.label_8.setText(_translate("bookadmin", "价格")) self.label_9.setText(_translate("bookadmin", "出版社")) self.label_12.setText(_translate("bookadmin", "在馆册数")) self.label_11.setText(_translate("bookadmin", "馆藏册数")) self.label_10.setText(_translate("bookadmin", "摘要")) self.label_13.setText(_translate("bookadmin", "书架号")) self.addbook.setText(_translate("bookadmin", "添加")) self.deletebook.setText(_translate("bookadmin", "删除")) self.alterbook.setText(_translate("bookadmin", "修改")) item = self.bookinfos.horizontalHeaderItem(0) item.setText(_translate("bookadmin", "书号")) item = self.bookinfos.horizontalHeaderItem(1) item.setText(_translate("bookadmin", "书名")) item = self.bookinfos.horizontalHeaderItem(2) item.setText(_translate("bookadmin", "作者")) item = self.bookinfos.horizontalHeaderItem(3) item.setText(_translate("bookadmin", "类型")) item = self.bookinfos.horizontalHeaderItem(4) item.setText(_translate("bookadmin", "价格")) item = self.bookinfos.horizontalHeaderItem(5) item.setText(_translate("bookadmin", "出版社")) item = self.bookinfos.horizontalHeaderItem(6) item.setText(_translate("bookadmin", "摘要")) item = self.bookinfos.horizontalHeaderItem(7) item.setText(_translate("bookadmin", "馆藏册数")) item = self.bookinfos.horizontalHeaderItem(8) item.setText(_translate("bookadmin", "在馆册数")) item = self.bookinfos.horizontalHeaderItem(9) item.setText(_translate("bookadmin", "书架号")) item = self.bookinfos.horizontalHeaderItem(10) item.setText(_translate("bookadmin", "被借次数")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("bookadmin", "管理书籍信息")) item = self.iteminfo.horizontalHeaderItem(0) item.setText(_translate("bookadmin", "读者ID")) item = self.iteminfo.horizontalHeaderItem(1) item.setText(_translate("bookadmin", "书号")) item = self.iteminfo.horizontalHeaderItem(2) item.setText(_translate("bookadmin", "借/还")) item = self.iteminfo.horizontalHeaderItem(3) item.setText(_translate("bookadmin", "时间")) self.yes.setText(_translate("bookadmin", "批准")) self.no.setText(_translate("bookadmin", "驳回")) self.refresh.setText(_translate("bookadmin", "刷新")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("bookadmin", "借阅/归还审批")) # 显示所有的读者 def show_all_readers(self): sql = "select * from readers" res = cursor.execute(sql) readerinfo = cursor.fetchall() self.readerinfors.setRowCount(res) for i in range(res): reader = readerinfo[i] readerid = QtWidgets.QTableWidgetItem(reader[0]) readername = QtWidgets.QTableWidgetItem(reader[1]) readersex = QtWidgets.QTableWidgetItem(reader[2]) readerunit = QtWidgets.QTableWidgetItem(reader[3]) readertype = QtWidgets.QTableWidgetItem(reader[4]) books_can_borrow = QtWidgets.QTableWidgetItem(str(reader[5])) books_borrowed = QtWidgets.QTableWidgetItem(str(reader[6])) charge_to_pay = QtWidgets.QTableWidgetItem(str(reader[8])) self.readerinfors.setItem(i, 0, readerid) self.readerinfors.setItem(i, 1, readername) self.readerinfors.setItem(i, 2, readersex) self.readerinfors.setItem(i, 3, readerunit) self.readerinfors.setItem(i, 4, readertype) self.readerinfors.setItem(i, 5, books_can_borrow) self.readerinfors.setItem(i, 6, books_borrowed) self.readerinfors.setItem(i, 7, charge_to_pay) def readerselect(self): readerid = self.readerid.text() readername = self.readername.text() readerunit = self.unit.text() abc = 0 if readerid: readerid = 'ID="%s"' % (readerid) abc = 1 if readername: if abc == 1: readername = 'and 姓名="%s"' % (readername) else: readername = '姓名="%s"' % (readername) abc = 1 if readerunit: if abc == 1: readerunit = 'and 单位="%s"' % (readerunit) else: readerunit = '单位="%s"' % (readerunit) sql0 = 'select * from readers where ' sql1 = readerid + readername + readerunit sql = sql0 + sql1 if sql1: res = cursor.execute(sql) if res: readerinfo = cursor.fetchall() # 返回一堆元组组成的元组 self.readerinfors.setRowCount(res) for i in range(res): reader = readerinfo[i] readerid = QtWidgets.QTableWidgetItem(reader[0]) readername = QtWidgets.QTableWidgetItem(reader[1]) readersex = QtWidgets.QTableWidgetItem(reader[2]) readerunit = QtWidgets.QTableWidgetItem(reader[3]) readertype = QtWidgets.QTableWidgetItem(reader[4]) books_can_borrow = QtWidgets.QTableWidgetItem(str(reader[5])) books_borrowed = QtWidgets.QTableWidgetItem(str(reader[6])) charge_to_pay = QtWidgets.QTableWidgetItem(str(reader[8])) self.readerinfors.setItem(i, 0, readerid) self.readerinfors.setItem(i, 1, readername) self.readerinfors.setItem(i, 2, readersex) self.readerinfors.setItem(i, 3, readerunit) self.readerinfors.setItem(i, 4, readertype) self.readerinfors.setItem(i, 5, books_can_borrow) self.readerinfors.setItem(i, 6, books_borrowed) self.readerinfors.setItem(i, 7, charge_to_pay) else: QMessageBox.warning(None, "警告", "没有符合条件的读者!", QMessageBox.Yes) else: QMessageBox.warning(None, "警告", "至少输入一项读者信息!", QMessageBox.Yes) # 显示图书信息 def show_all_books(self): sql = 'SELECT * FROM books' res = cursor.execute(sql) books = cursor.fetchall() self.bookinfos.setRowCount(res) for i in range(res): book = books[i] self.bookinfos.setItem(i, 0, QtWidgets.QTableWidgetItem(book[0])) self.bookinfos.setItem(i, 1, QtWidgets.QTableWidgetItem(book[1])) self.bookinfos.setItem(i, 2, QtWidgets.QTableWidgetItem(book[2])) self.bookinfos.setItem(i, 3, QtWidgets.QTableWidgetItem(book[3])) self.bookinfos.setItem(i, 4, QtWidgets.QTableWidgetItem(str(book[4]))) self.bookinfos.setItem(i, 5, QtWidgets.QTableWidgetItem(book[5])) self.bookinfos.setItem(i, 6, QtWidgets.QTableWidgetItem(book[6])) self.bookinfos.setItem(i, 7, QtWidgets.QTableWidgetItem(str(book[7]))) self.bookinfos.setItem(i, 8, QtWidgets.QTableWidgetItem(str(book[8]))) self.bookinfos.setItem(i, 9, QtWidgets.QTableWidgetItem(book[9])) self.bookinfos.setItem(i, 10, QtWidgets.QTableWidgetItem(str(book[10]))) # 添加图书 def add_book(self): bookid = self.bookid.text() bookname = self.bookname.text() author = self.author.text() booktype = self.type.text() prize1 = self.prize.text() press = self.press.text() abstract_2 = self.abstract_2.text() bookshelf = self.bookshelf.text() try: totalnum = int(self.totalnum.text()) num = int(self.num.text()) if prize1 != '': prize = float(prize1) if bookid and bookname and author and booktype and prize and press and totalnum and num and abstract_2 and bookshelf: sql = 'insert into books(书号,书名,作者,类型,价格,出版社,摘要,馆藏册数,在馆册数,书架号,被借次数) values ("%s","%s","%s","%s","%.2f","%s","%s","%d","%d","%s","%d")' % ( bookid, bookname, author, booktype, prize, press, abstract_2, num, totalnum, bookshelf, 0) cursor.execute(sql) conn.commit() self.show_all_books() else: QMessageBox.warning(None, "警告", "请补全书目信息!", QMessageBox.Yes) else: QMessageBox.warning(None, "警告", "请补全书目信息!", QMessageBox.Yes) except (pymysql.err.IntegrityError, ValueError): QMessageBox.warning(None, "警告", "书目信息错误!", QMessageBox.Yes) # 删除图书 def drop_book(self): s = self.bookinfos.currentRow() # 通过获取第几行(从0开始) bookid = self.bookinfos.item(s, 0).text() sql = 'delete from books where 书号="%s"' % (bookid) cursor.execute(sql) conn.commit() self.show_all_books() # 显示图书信息 def displayinfo(self): s = self.bookinfos.currentRow() self.bookid.setText(self.bookinfos.item(s, 0).text()) self.bookname.setText(self.bookinfos.item(s, 1).text()) self.author.setText(self.bookinfos.item(s, 2).text()) self.type.setText(self.bookinfos.item(s, 3).text()) self.prize.setText(self.bookinfos.item(s, 4).text()) self.press.setText(self.bookinfos.item(s, 5).text()) self.abstract_2.setText(self.bookinfos.item(s, 6).text()) self.num.setText(self.bookinfos.item(s, 7).text()) self.totalnum.setText(self.bookinfos.item(s, 8).text()) self.bookshelf.setText(self.bookinfos.item(s, 9).text()) # 修改图书 def update_book(self): bookid = self.bookid.text() bookname = self.bookname.text() author = self.author.text() booktype = self.type.text() prize1 = self.prize.text() press = self.press.text() abstract_2 = self.abstract_2.text() bookshelf = self.bookshelf.text() try: totalnum = int(self.totalnum.text()) num = int(self.num.text()) if prize1 != '': prize = float(prize1) if bookid and bookname and author and booktype and prize and press and totalnum and num and abstract_2 and bookshelf: sql = 'UPDATE books SET 书号="%s",书名="%s",作者="%s",类型="%s",价格="%.2f",出版社="%s",摘要="%s",馆藏册数="%d",在馆册数="%d",书架号="%s",被借次数="%d" WHERE 书号="%s"' % ( bookid, bookname, author, booktype, prize, press, abstract_2, num, totalnum, bookshelf, 0, bookid) cursor.execute(sql) conn.commit() self.show_all_books() else: QMessageBox.warning(None, "警告", "请补全书目信息!", QMessageBox.Yes) else: QMessageBox.warning(None, "警告", "请补全书目信息!", QMessageBox.Yes) except (pymysql.err.IntegrityError, ValueError): QMessageBox.warning(None, "警告", "书目信息错误!", QMessageBox.Yes) # 显示审批信息 def show_all_items(self): sql = 'SELECT * FROM item' res = cursor.execute(sql) items = cursor.fetchall() self.iteminfo.setRowCount(res) for i in range(res): item = items[i] self.iteminfo.setItem(i, 1, QtWidgets.QTableWidgetItem(item[0])) self.iteminfo.setItem(i, 0, QtWidgets.QTableWidgetItem(item[1])) self.iteminfo.setItem(i, 3, QtWidgets.QTableWidgetItem(str(item[2]))) self.iteminfo.setItem(i, 2, QtWidgets.QTableWidgetItem(item[3])) def pizhun(self): s = self.iteminfo.currentRow() # 通过获取第几行(从0开始) readerid = self.iteminfo.item(s, 0).text() bookid = self.iteminfo.item(s, 1).text() selecttype = self.iteminfo.item(s, 2).text() itemtime = str(self.iteminfo.item(s, 3).text()) if selecttype == 'borrow': # 从item中取出并放入borrow中 sql1 = 'delete from item where bookid="%s"' % (bookid) cursor.execute(sql1) conn.commit() sql2 = 'insert into borrow(ID,书号,借书时间) values ("%s","%s","%s")' % (readerid, bookid, itemtime) cursor.execute(sql2) conn.commit() # reader里面的在借册数加一,可借册数减一 sql3 = 'update readers set 可借册数=可借册数-1,在借册数=在借册数+1 where ID="%s"' % (readerid) cursor.execute(sql3) conn.commit() # 图书被借册数加一 sql4 = 'update books set 被借次数=被借次数+1,在馆册数=在馆册数-1 where 书号="%s"' % (bookid) cursor.execute(sql4) conn.commit() else: sql = 'select * from borrow where ID="%s" and 书号="%s"' % (readerid, bookid) cursor.execute(sql) borrowtime = cursor.fetchall() borrowtime = borrowtime[0] borrowtime = str(borrowtime[-1]) # 获取当前时间与借书时间相差的天数 borrowtime = time.strptime(borrowtime, "%Y-%m-%d") time_array1 = int(time.mktime(borrowtime)) itemtime = time.strptime(itemtime, "%Y-%m-%d") time_array2 = int(time.mktime(itemtime)) result = (time_array2 - time_array1) // 60 // 60 // 24 # 读出该身份人员可借时间 sql7 = 'select * from readers where ID="%s"' % (readerid) cursor.execute(sql7) item = cursor.fetchall() item = item[0] if item[4] == '研究生': readertime = 60 elif item[4] == '本科生': readertime = 30 elif item[4] == '教师': readertime = 90 time_to_cal = result - readertime # 判断是否超期 if time_to_cal <= 0: QMessageBox.warning(None, "谢谢惠顾", "还书成功!", QMessageBox.Yes) else: sql8 = 'update readers set 欠款=欠款+"%d" where ID="%s"' % (time_to_cal, readerid) cursor.execute(sql8) conn.commit() QMessageBox.warning(None, "注意", "该读者已逾期,请提醒及时还清欠款!", QMessageBox.Yes) sql5 = 'delete from borrow where 书号="%s"' % (bookid) cursor.execute(sql5) conn.commit() sql6 = 'delete from item where bookid="%s"' % (bookid) cursor.execute(sql6) conn.commit() sql9 = 'update readers set 可借册数=可借册数+1,在借册数=在借册数-1 where ID="%s"' % (readerid) cursor.execute(sql9) conn.commit() sql10 = 'update books set 在馆册数=在馆册数+1 where 书号="%s"' % (bookid) cursor.execute(sql10) conn.commit() self.show_all_items() def bohui(self): s = self.iteminfo.currentRow() # 通过获取第几行(从0开始) bookid = self.iteminfo.item(s, 1).text() sql = 'delete from item where bookid="%s"' % (bookid) cursor.execute(sql) conn.commit()