提问人:Josep Bigorra 提问时间:3/18/2019 最后编辑:eyllanescJosep Bigorra 更新时间:3/18/2019 访问量:314
无法遍历 QTableWidget 的列
Can't loop through a column for QTableWidget
问:
我需要一些帮助,因为这个问题根本没有意义......缩进看起来有点不对劲,对不起......
self.myData = [["facebook-icon", "Facebook", str(self.mykeys[0][1]), "*" *len(self.passes[0])], ......
即使 rowCount 打印出数字 3,也只有表中的第一项被填充。这就是让我感到困惑的地方。希望有人尝试这段代码,我是 Python 新手
passAmount = len(self.myData)
print("There are %x items in myData" % (passAmount))
rowCount = self.tableWidget.rowCount()
print("There are %x items in the table" % (rowCount))
for row in range(0, rowCount):
cellText = self.tableWidget.itemAt(row,0).text()
if(cellText == "facebook-icon"):
self.tableWidget.itemAt(row, 0).setText("")
print(imagePaths[0])
fb = QPixmap(imagePaths[0]).scaledToWidth(20)
label = QLabel()
label.setPixmap(fb)
# label.setScaledContents(True)
self.tableWidget.setCellWidget(row, 0, label)
elif(cellText == "blogger-icon"):
...
self.tableWidget.setFont(self.font)
self.tableWidget.resizeColumnsToContents()
self.tableWidget.resizeRowsToContents()
self.tableWidget.doubleClicked.connect(self.on_table_click)
# Show widget
self.show()
我是不是做错了什么??
答:
2赞
eyllanesc
3/18/2019
#1
正如我所看到的,您想从第一列获取元素,但不会返回给定行和列的项目,而是返回几何位置,而应该使用该方法。此外,我们可以使用字典来减少代码:itemAt()
item()
dict_icons = {
"facebook-icon": imagePaths[0],
"blogger-icon": imagePaths[1]
}
for row in range(0, 3):
item = self.tableWidget.item(row, 0)
image_path = dict_icons.get(item.text())
if image_path is not None:
item.setText("")
pixmap = QPixmap(image_path).scaledToWidth(20)
label = QLabel(pixmap=pixmap)
self.tableWidget.setCellWidget(row, 0, label)
评论
0赞
Josep Bigorra
3/18/2019
感谢您的帮助:)我想尝试并花时间尽我所能回馈社区。明天要批准公关干杯
评论