搜索/遍历QListWidget并显示结果

时间:2016-08-25 07:47:00

标签: python-3.x pyqt5

我想允许用户搜索包含文件名的QListWidget。我尝试了几件事但没有成功。也没有错误消息。

这是我按下按钮时调用的搜索功能。它使用用户放入“search_field”小部件的字符串。我在这里做错了什么?

    def search_files(self):
    items = self.listWidget.findItems(self.search_field.text(), QtCore.Qt.MatchContains)
    if items:
        results = '\n'.join(str(item)for item in items)
    else:
        results = 'Found nothing'
    QtWidgets.QMessageBox(QtWidgets.QMessageBox.Information, 'Search Results', results)

提前致谢。

1 个答案:

答案 0 :(得分:0)

您只需要在代码中添加messagebox.exec()即可。 findItems()返回项目列表。如果用户应该看到匹配的文件名而不是项目,请使用str(item.text())。这里重写:

def search_files(self):
    items = self.listWidget.findItems(self.search_field.text(), QtCore.Qt.MatchContains)
    if items:
        results = '\n'.join(str(item)for item in items) # or str(item.text())
    else:
        results = 'Found nothing'
    mb = QtWidgets.QMessageBox(QtWidgets.QMessageBox.Information, 'Search Results', results)
    mb.exec()