gpt4 book ai didi

python - PyQt - QTableWidget 的 setText 方法获取 AttributeError

转载 作者:太空宇宙 更新时间:2023-11-04 01:12:04 26 4
gpt4 key购买 nike

我使用 pyuic 从 Qt Designer 编译了一个 GUI 文件,我试图找出如何将第一列中的所有单元格设置为相同的值 "n"

以下是我的代码:

class Ui_MainWindow(object):
...
def accinit(self):
for n in xrange(9):
item = self.tableWidget.item(n, 0)
item.setText(_translate("MainWindow", "n", None))

控制台输出:

AttributeError: 'NoneType' object has no attribute 'setText'

我只更改了一个单元格 (0,0) 的代码,它运行良好:

def accinit(self):
item = self.tableWidget.item(0, 0)
item.setText(_translate("MainWindow", "n", None))

位于 (0,0) 的单元格包含内容 "n"

我想也许在for循环中是不允许的,所以我将代码更改为:

def accinit(self):
for x in xrange(1):
item = self.tableWidget.item(0, 0)
item.setText(_translate("MainWindow", "n", None))

但它仍然有效!为什么?

我已经引用了下面的文章(但还是无法解决这个错误):

Python: Attribute Error - 'NoneType' object has no attribute 'something'

Python AttributeError: NoneType object has no attribute 'close'

最佳答案

我不是很确定。但这可能会有所帮助。

显示无类型对象错误

=> tableWidget.item语句执行后item为None

=> 对于某些 n,在 (n, 0) 处不存在任何项,因此它不返回任何项

但它适用于 (0, 0)

=> 一个项目已经存在于 (0, 0)

=> 检查您的 tableWidget 是否有标题?如果它有标题,则在(0, 0) 因此您可以为其设置文本。因此,只有 (0, x) 中有一个项目,它会抛出 (1, 0) 而不是 (0, 0) 的 NoneType 错误。

可能的解决方案?或者更正

创建一个新项目,并使用 tableWidget.setItem(...) 来完成必要的工作。有点像

for x in xrange(5):
item = QTableWidgetItem()
item.setText("blah blah")
self.tableWidget.setItem(n, 0, item)

关于python - PyQt - QTableWidget 的 setText 方法获取 AttributeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27140739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com