在我的代码中,我创建了一个包含50列和2行的QTableWidget。 通过执行一个函数,Python放入了我之前创建的单元格列表元素。但是,我不知道如何修改这些细胞。 例如,我想获取(x,y)单元格的当前数据并添加整数。所以我试过了:
content = int(self.ui.table.item(X, Y).text()) #I've just strings in my cells
self.ui.table.item(X, Y).setText(str(content + 1)
但是那段代码,不行。 我也试过了:
a=self.ui.table.item(X,Y)
print(a.data(0).toString())
但是Python回复了我:
'NoneType' object has no attribute 'data'
答案 0 :(得分:1)
试试这个,希望这会奏效:
val = 21 # integer value
row = X # this is your row number
self.ui.table.insertRow(row) # here you decide in which row
item = QTableWidgetItem(str(val)) # create a new Item
self.ui.table.setItem(row,Y, item)
这将覆盖QTableWidget单元格的X,Y索引处的值。
答案 1 :(得分:1)
如果你使用QtDesigner创建用户界面,特别是表格,可能是你遇到了实例问题,Qtdesigner创建了表格(QTablewiget)但没有在表格内部创建单元格(QTableWidgetItem),这就是原因当您尝试获取 X、Y 项时,您会得到一个“noneType”对象,我知道这听起来很疯狂,有 3 种方法可以解决这些问题:
第一:您可以创建单个项目作为@zeb 显示
2do : 用一个值填充 QtDesigner 上的单元格,用这个 Qtdesigner 创建表格项
3th : 你可以在 setupUi 函数上创建你需要使用的每个元素:
item = self.table.item(X,Y)
item.setText(_translate("MainWindow", " "))