我想实现当库存不足时,会弹出消息框,但现在消息框弹出后才显示数据界面,怎么可以先显示数据界面,在数据界面之上弹出消息框?,并且怎么时库存不足对应的那本书变红色
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)
# 查询库存量小于阈值的图书数量
low_stock_count = dbModule.check(s_book)
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 in range(row):
for j in range(9):
data = QTableWidgetItem(str(result[i][j]))
# 设置单元格内容居中对齐
data.setTextAlignment(Qt.AlignmentFlag.AlignCenter)
# 判断库存是否低于阈值,以及将库存量小于阈值的行变红
if j == 6 and int(result[i][j]) < 5:
data.setForeground(QtGui.QColor(255, 0, 0))
QMessageBox.warning(self, '库存不足', '图书库存不足,请及时补货!')
self.bookListTable.setItem(i, j, data)