Объект 'NoneType' не имеет атрибута 'text' в TableWidgets - PullRequest
0 голосов
/ 30 марта 2019

Я пытался работать с TableWidgets на Python и столкнулся с проблемой.

Я хотел проверить, заполнена ли таблица или нет (конечно, с str).

def add_table (self):
    self.kala = self.comboBox.currentText()
    self.code_kala = self.comboBox.currentIndex()
    self.vahed = self.comboBox_2.currentText()
    list_e = []
    for i in list(range(10)):
        #self.tab = self.tableWidget.item(i,0)
        if self.tableWidget.item(i,0).text() != '':
        #if self.tab.text() !='':
            list_e.append(i)
        else:
            pass
    self.ROW = len(list_e)
    self.tableWidget.setItem(self.ROW,0,QTableWidgetItem(self.kala))
    self.tableWidget.setItem(self.ROW,1,QTableWidgetItem(str(self.code_kala)))
    self.tableWidget.setItem(self.ROW,2,QTableWidgetItem(str(self.vahed)))

и я не знаю, почему я получаю эту ошибку:

NoneType' object has no attribute 'text'

Кто-нибудь знает, как ее решить?

Кроме того, я знаю, что у этого кода нет проблем (я получил хорошие результаты с тем же кодом в другом проекте), но, как сказал cmd:

File "D:\**\***\*****\*******\*\*************.py", line 1755, in add_table
    if self.tableWidget.item(i,0).text() != '':
AttributeError: 'NoneType' object has no attribute 'text'

1 Ответ

0 голосов
/ 30 марта 2019

Кажется, что виджет таблицы может содержать значения «Нет», поэтому вы должны ожидать, что они появятся.Вместо этого:

    if self.tableWidget.item(i,0).text() != '':

сделайте это:

    thing = self.tableWidget.item(i,0)
    if thing is not None and thing.text() != '':
        # do stuff with thing
...