2016-08-25 208 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