2016-10-28 2 views
0

У меня есть 2 столбца в моем QTableWidget, первый столбец заполнен текстом, а второй заполнен combobox.Проверьте пустую ячейку в определенном столбце QTableWiget и удалите строку

В моей таблице есть несколько строк, в которых они не заполнены комбобоксами, так как они не выполнили одну из проверок, которые я сделал, и поэтому в их втором столбце не создаются никакие выпадающие списки, и они отображаются как пустая ячейка.

Как я могу проверить такие пустые ячейки во втором столбце и удалить все строки?

Я попробовал следующее время поиска в Интернете для решения:

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

Было бы разумнее проверить, содержит ли ячейка виджет, а не содержит ли он какой-либо текст. Кроме того, вы должны перебрать в обратном так, чтобы удаление строк не влияло на индексы оставшихся строк:

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) 
Смежные вопросы