如何在QTableWidget中仅获取带有值的行/列数?

问题描述

我在 PyQt5 上有一个 tablewidget,数量为 20 列。只有前两列有任何值,其余的都是空的。有什么方法可以返回包含值的列/行数。

这个 new_cols = self.tableWidget.columnCount() 是我在返回列数时唯一能找到的。

解决方法

没有直接的方法可以做到这一点,也没有“捷径”(除非您绝对确定如果某个行/列组合为空,那么后面的行和列也为空)。

以下假设您打算将“空”项目作为未设置值的项目(包括已修改然后“清除”的项目)。

    def dataExtent(self):
        maxRow = maxCol = -1
        for row in range(self.tableWidget.rowCount()):
            for col in range(self.tableWidget.columnCount()):
                item = self.tableWidget.item(row,col)
                if not item or not item.text():
                    continue
                maxRow = row
                maxCol = max(maxCol,col)
        print('Max row: {}\nMax column: {}'.format(
            maxRow + 1,maxCol + 1))