以下是我的代码,我想实现当搜索不到某本图书时,会弹出是否留言的提示,当点击确认后就会进去留言界面,我该如何添加
数据库图书查询代码
def list(rbook: Rbook):
"""
根据条件查询图书信息
:param Hbook: 查询参数
:return:
"""
con = None
try:
con = dbUtil.getCon()
cursor = con.cursor()
# 查询数据
sql = "SELECT b.bid,t.ID,ty.bookTypeName,b.bookName,b.author,b.age,b.sex,b.price,t.bookDesc,b.borrowDate," \
"b.returnDate,b.stock FROM borrow AS b,t_book AS t,t_booktype AS ty WHERE b.TID=ty.TID AND b.ID=t.ID"
if rbook != None:
if rbook.bookName.strip() != '':
sql += " and b.bookName like '%" + rbook.bookName + "%' "
if rbook.author.strip() != '':
sql += " and b.author like '%" + rbook.author + "%' "
if rbook.TID != -1:
sql += " and b.TID = " + str(rbook.TID)
cursor.execute(sql)
con.commit()
return cursor.fetchall()
except Exception as e:
print(f"查询数据时发生错误: {e}")
if con is not None:
con.rollback()
return None
finally:
dbUtil.closeCon(con)
逻辑功能代码
def initTable(self):
"""
根据条件初始化表格
:return:
"""
bookName = self.s_bookNameInput.text()
authorName = self.s_authorInput.text()
TID = self.s_ComboBox.currentData()
s_book = Book(bookName, authorName, TID)
result = bookDao.list(s_book)
row = 0
if result:
row = len(result)
self.bookListTable.setColumnCount(9)
self.bookListTable.setRowCount(row)
self.bookListTable.verticalHeader().setVisible(False) # 隐藏垂直标题 序号
self.bookListTable.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers) # 禁止编辑单元格
self.bookListTable.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
self.bookListTable.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOn)
self.bookListTable.setHorizontalHeaderLabels(
['图书编号', '图书名称', '图书作者', '作者年龄', '作者性别', '图书价格', '库存量', '图书类别', '图书简介'])
self.bookListTable.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch) # 列头自适应
self.bookListTable.setSelectionBehavior(
QAbstractItemView.SelectionBehavior.SelectRows) # 设置选择行为,以行为单位
for i, record in enumerate(result):
for j in range(9):
data = QtWidgets.QTableWidgetItem(str(record[j]))
# 设置单元格内容居中对齐
data.setTextAlignment(Qt.AlignmentFlag.AlignCenter)
self.bookListTable.setItem(i, j, data)
留言界面代码
if borrowDao.list(rbook) == 0:
reply = QMessageBox.question(self, '系统提示', '是否进行图书留言?',
QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No,
QMessageBox.StandardButton.No)
if reply == QMessageBox.StandardButton.Yes:
self.text = text.Ui_Form()
self.text.show()
return