You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在QFileDialog中仅显示含指定关键词的文件?

实现QFileDialog只显示含"spam"的文件

嘿,这个需求很好解决!你只需要给QFileDialog设置一个通配符过滤器,就能轻松过滤出文件名包含"spam"的文件。我把你的代码修改了一下,同时给你解释下逻辑:

修改后的完整代码

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

class Window(QMainWindow):
    def __init__(self):
        super().__init__()  # 用super()调用父类构造函数更简洁哦
        dialog = QFileDialog()
        # 设置过滤器:匹配任何文件名中包含"spam"的文件
        dialog.setNameFilter("包含spam的文件 (*spam*)")
        # 要是你想限定文件类型,比如只看txt文件,可以改成这样:
        # dialog.setNameFilter("包含spam的TXT文件 (*spam*.txt)")
        dialog.exec()

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

关键细节说明

  • setNameFilter()方法里的*spam*是通配符规则:*代表任意长度的任意字符,所以*spam*就能匹配所有文件名里包含"spam"的文件——不管spam在文件名开头、中间还是结尾都能命中。
  • 如果需要多套过滤规则供选择,你可以用setNameFilters()(注意是复数形式),传入一个规则列表,比如:
    dialog.setNameFilters([
        "包含spam的所有文件 (*spam*)",
        "包含spam的TXT文件 (*spam*.txt)",
        "所有文件 (*)"
    ])
    
    这样用户就能在对话框的过滤器下拉菜单里切换不同的过滤选项啦。

内容的提问来源于stack exchange,提问作者ignoring_gravity

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:52:06