我正在尝试获取一个程序,以将组合框输出与列表中的项目进行比较,但是我的表未显示任何内容。我正在使用jsonpickle
def load_items(self):
for i in reversed(range(self.ui.tbl_itm.rowCount())):
self.ui.tbl_itm.removeRow(i)
Item.load_from_file()
while self.ui.cmb_type_out == 0:
row_pos = 0
for item in Item.item_list:
self.ui.tbl_itm.insertRow(row_pos)
self.ui.tbl_itm.setItem(row_pos, 0, QTableWidgetItem(item.type))
self.ui.tbl_itm.setItem(row_pos, 1, QTableWidgetItem(item.name))
self.ui.tbl_itm.setItem(row_pos, 2, QTableWidgetItem(item.DateCol.strftime('%d/%m/%Y')))
self.ui.tbl_itm.setItem(row_pos, 3, QTableWidgetItem(item.DateMan.strftime('%d/%m/%Y')))
self.ui.tbl_itm.setItem(row_pos, 4, QTableWidgetItem(item.desc))
row_pos += 1
rows = sorted(set(index.row() for index in
self.ui.tbl_itm.selectedIndexes()))
if self.ui.cmb_type_out == 1:
self.ui.tbl_itm.clearContents()
if Item.item_list.type(row) == "Computer":
self.ui.tbl_itm.insertRow(row_pos)
self.ui.tbl_itm.setItem(row_pos, 0, QTableWidgetItem(item.type))
self.ui.tbl_itm.setItem(row_pos, 1, QTableWidgetItem(item.name))
self.ui.tbl_itm.setItem(row_pos, 2, QTableWidgetItem(item.DateCol.strftime('%d/%m/%Y')))
self.ui.tbl_itm.setItem(row_pos, 3, QTableWidgetItem(item.DateMan.strftime('%d/%m/%Y')))
self.ui.tbl_itm.setItem(row_pos, 4, QTableWidgetItem(item.desc))
row_pos += 1
self.ui.tbl_itm.refr()
elif self.ui.cmb_type_out == 2:
for row in rows:
if Item.item_list(row) == "Camera":
self.ui.tbl_itm.insertRow(row_pos)
self.ui.tbl_itm.setItem(row_pos, 0, QTableWidgetItem(item.type))
self.ui.tbl_itm.setItem(row_pos, 1, QTableWidgetItem(item.name))
self.ui.tbl_itm.setItem(row_pos, 2, QTableWidgetItem(item.DateCol.strftime('%d/%m/%Y')))
self.ui.tbl_itm.setItem(row_pos, 3, QTableWidgetItem(item.DateMan.strftime('%d/%m/%Y')))
self.ui.tbl_itm.setItem(row_pos, 4, QTableWidgetItem(item.desc))
row_pos += 1
elif self.ui.cmb_type_out == 3:
for row in rows:
if Item.item_list(row) == "Phone":
self.ui.tbl_itm.insertRow(row_pos)
self.ui.tbl_itm.setItem(row_pos, 0, QTableWidgetItem(item.type))
self.ui.tbl_itm.setItem(row_pos, 1, QTableWidgetItem(item.name))
self.ui.tbl_itm.setItem(row_pos, 2, QTableWidgetItem(item.DateCol.strftime('%d/%m/%Y')))
self.ui.tbl_itm.setItem(row_pos, 3, QTableWidgetItem(item.DateMan.strftime('%d/%m/%Y')))
self.ui.tbl_itm.setItem(row_pos, 4, QTableWidgetItem(item.desc))
row_pos += 1
elif self.ui.cmb_type_out == 4:
for row in rows:
if Item.item_list(row) == "Video Player":
self.ui.tbl_itm.insertRow(row_pos)
self.ui.tbl_itm.setItem(row_pos, 0, QTableWidgetItem(item.type))
self.ui.tbl_itm.setItem(row_pos, 1, QTableWidgetItem(item.name))
self.ui.tbl_itm.setItem(row_pos, 2, QTableWidgetItem(item.DateCol.strftime('%d/%m/%Y')))
self.ui.tbl_itm.setItem(row_pos, 3, QTableWidgetItem(item.DateMan.strftime('%d/%m/%Y')))
self.ui.tbl_itm.setItem(row_pos, 4, QTableWidgetItem(item.desc))
row_pos += 1
elif self.ui.cmb_type_out == "All":
for _ in rows:
self.ui.tbl_itm.insertRow(row_pos)
self.ui.tbl_itm.setItem(row_pos, 0, QTableWidgetItem(item.type))
self.ui.tbl_itm.setItem(row_pos, 1, QTableWidgetItem(item.name))
self.ui.tbl_itm.setItem(row_pos, 2, QTableWidgetItem(item.DateCol.strftime('%d/%m/%Y')))
self.ui.tbl_itm.setItem(row_pos, 3, QTableWidgetItem(item.DateMan.strftime('%d/%m/%Y')))
self.ui.tbl_itm.setItem(row_pos, 4, QTableWidgetItem(item.desc))
row_pos += 1
预期的输出应该是表中的项目被过滤,并且只应显示特定的几个项目,但最终发生的是该表未显示任何内容。