我试图在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'
答案 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