检查 QTableWiget 特定列中的空单元格并删除该行
Check for empty cell in a particular column of a QTableWiget and remove the row
我的 QTableWidget 中有 2 列,第一列填充文本,第二列填充组合框。
在我的 table 中,有几行没有填充组合框,因为它们未能完成我所做的一项检查,因此,在它们的第二列中,没有组合框创建后它们显示为空单元格。
如何检查第二列中的此类空单元格并删除整行?
我在网上搜索解决方案时尝试了以下方法:
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' #
我想这是因为我的单元格不是行编辑等所以没有文本?
我该如何解决这个问题?
检查单元格是否包含小部件比检查它是否包含任何文本更有意义。此外,您必须在 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)
我的 QTableWidget 中有 2 列,第一列填充文本,第二列填充组合框。
在我的 table 中,有几行没有填充组合框,因为它们未能完成我所做的一项检查,因此,在它们的第二列中,没有组合框创建后它们显示为空单元格。
如何检查第二列中的此类空单元格并删除整行?
我在网上搜索解决方案时尝试了以下方法:
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' #
我想这是因为我的单元格不是行编辑等所以没有文本?
我该如何解决这个问题?
检查单元格是否包含小部件比检查它是否包含任何文本更有意义。此外,您必须在 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)