'NoneType'对象在TableWidgets中没有属性'text'

时间:2019-03-30 14:02:41

标签: python nonetype

我试图在Python上使用TableWidgets,但遇到了问题。

我想检查表是否已满(当然是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 :(得分:0)

表小部件似乎可能包含“无”值,因此您必须期望它们弹出。而不是这样做:

    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