目录选择器在PyQt5中显示过滤的文件列表?

比方说,我有这个文件夹,里面有一些.png文件:

目录选择器在PyQt5中显示过滤的文件列表?

我想拥有一个PyQt5应用程序,它将显示一个目录选择器对话框(因此,我想选择目录,而不是文件)-但是,我也想指定一个文件过滤器,这样当我选择一个给定目录,将显示与过滤器匹配的内部文件(显示为灰色,表示无法选择它们),并且未显示其他文件。

所以,这是我想出的一个简单示例-基于PyQt - QFileDialog - directly browse to a folder?中的讨论:

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *

class Example(QWidget):
  def __init__(self):
    super(Example,self).__init__()
    self.initUI()

  def initUI(self):
    self.layout = QGridLayout()
    self.setLayout(self.layout)

    self.btn_folder = QPushButton('Choose folder',self)
    self.btn_folder.clicked.connect(self.on_btn_folder_click)

    self.setGeometry(300,300,220,170)
    self.setWindowTitle('Tester')
    self.show()

  @pyqtSlot()
  def on_btn_folder_click(self):
    dialog = QFileDialog(self,'Select Directory with .png files',"",filter="*.png")
    dialog.setfileMode(QFileDialog.DirectoryOnly)
    if dialog.exec_() == QDialog.accepted:
      print(dialog.selectedFiles())

if __name__ == '__main__':
  app = QApplication(sys.argv)
  ex = Example()
  sys.exit(app.exec_())

运行此命令(Windows 10上的MINGW64 [MSYS2]下的Python 3.8.0)并单击按钮以启动目录选择器-并导航至与上述相同的文件夹,我得到:

目录选择器在PyQt5中显示过滤的文件列表?

...即,尽管我在代码中定义了文件过滤器,但目录选择器在文件夹内未显示任何文件(即使否则,文件夹中存在的所有文件实际上都应与过滤器匹配)。 / p>

那么有什么办法可以拥有一个PyQt5目录选择器-但是它将在目录中显示(灰色)与过滤器匹配的文件?

xy2100789 回答:目录选择器在PyQt5中显示过滤的文件列表?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3151908.html

大家都在问