仅在一列上使用finditem()

时间:2018-06-27 13:51:33

标签: python pyqt pyqt5 qtablewidget qtablewidgetitem

我有一个填充有QtableWidgetItems的QTableWidget。

我想要一个搜索栏,可以在其中输入内容,并且作为“响应”,表格应该刷新,并且仅在搜索字段中显示与字符串部分匹配的项目。

我为此使用finditem,但我希望仅使用一列进行搜索。我该怎么办?

1 个答案:

答案 0 :(得分:1)

手动迭代表。

columnOfInterest = 1 # or whatever
valueOfInterest = "foo" 
for rowIndex in range(self.myTable.rowCount()):
    twItem = self.myTable.item(rowIndex, columnOfInterest)
    if twItem.text() == valueOfInterest:
        self.myTable.setRowHidden(rowIndex, False)
    else:
        self.myTable.setRowHidden(rowIndex, True)

您将必须实施更好的匹配条件。如果您想自己使用,可以使用str.find and str.startswith and others之类的字符串函数。