仅在QFileDialog中显示某些文件

时间:2018-05-10 10:01:29

标签: python pyqt pyqt5 qfiledialog

以下是我编写的示例代码:

from PyQt5.QtWidgets import (QApplication, QMainWindow, QFileDialog)
import sys


class Window(QMainWindow):

    def __init__(self):
        QMainWindow.__init__(self)
        dialog = QFileDialog()
        dialog.exec()

app = QApplication(sys.argv)
window = Window()
window.show()
app.exec_()

当我运行它时,我得到以下内容: enter image description here

这些是我目录中的所有文件。我想过滤掉标题中没有“垃圾邮件”一词的文件,这样当我运行文件时,显示的唯一文件是“spam.txt”,“spam_eggs_and_spam.txt”和“ spam_eggs_tomato_and_spam.txt”。

2 个答案:

答案 0 :(得分:2)

您只需添加如下过滤器:

ActionSet

但如果用户在文件名字段中键入*。*,则可以覆盖它。

更好的方法是实现自己的dialog = QFileDialog() dialog.setNameFilter("Text Spam Files (*spam*.txt)") dialog.exec() ,这是我的尝试:

QSortFilterProxyModel

答案 1 :(得分:1)

仅显示带有“垃圾邮件”字样的文件。在其中你可以添加:

dialog.setNameFilters(["*spam*"])