我想允许用户搜索包含文件名的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)
提前致谢。
答案 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()