我的qtablewidget没有提供正确的输出

时间:2019-09-16 17:59:49

标签: python pyqt pyqt5 qtablewidget qcombobox

我正在尝试获取一个程序,以将组合框输出与列表中的项目进行比较,但是我的表未显示任何内容。我正在使用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

预期的输出应该是表中的项目被过滤,并且只应显示特定的几个项目,但最终发生的是该表未显示任何内容。

0 个答案:

没有答案