python - 无法循环遍历 QTableWidget 的列

标签 python pyqt pyqt5 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()

我做错了什么吗?

App example

最佳答案

正如我所见,您想从第一列获取元素,但是 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)

关于python - 无法循环遍历 QTableWidget 的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55210736/

相关文章:

python - pyqt中的一串连续的复选框

python - 如何在 PyQt5 中删除 Qlabel

python - 如何将 Cassandra map 转换为 Pandas Dataframe

python - celery 和路由

python - 为 QTextEdit 设置字体被忽略,没有明显的原因

python - 如何在 anaconda 中安装 PyQt4?

python - Tkinter 检查 StringVar 是否不为空

python - 如何沟通两个独立的python进程?

python - PyQt - 添加文本

python - 如何在单独的 QThread 中使用 QTimer