2016-08-25 165 views
0

我想允许用户搜索包含文件名的QListWidget。我尝试了几件没有成功的事情。没有错误信息。搜索/遍历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

您只需将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() 
+0

刚刚工作,你的解决方案帮了我。非常感谢!! – Mawkey