检查QTableWiget的特定列中的空单元格并删除行

时间:2016-10-28 01:54:09

标签: python pyqt qtablewidget qcombobox

我的QTableWidget中有2列,第一列填充了文本,第二列填充了组合框。

在我的表格中,有几行没有填充组合框,因为它们未能完成我所做的其中一项检查,因此,在第二列中,没有创建组合框并且它们显示为空细胞

如何检查第二列中的空单元格并删除整行?

我在网上搜索解决方案时尝试了以下内容:

for row in xrange(self.my_table.rowCount()):
    column_cell = self.my_table.item(row, 1)
    column_text = str(column_cell.text())
    if column_text.isEmpty():
        self.my_table.removeRow(row_position)

我收到以下错误: # AttributeError: 'NoneType' object has no attribute 'text' # 我想这是因为我的单元格不是行编辑等,所以没有文字?

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

检查单元格是否包含窗口小部件更有意义,而不是它是否包含任何文本。此外,您必须迭代 reverse ,以便删除行不会影响其余行的索引:

for row in reversed(xrange(self.my_table.rowCount())):
    widget = self.my_table.cellWidget(row, 1)
    if widget is None:
        self.my_table.removeRow(row)