python - “selectedFilters”不是有效的关键字参数

标签 python pyqt5 signature qfiledialog

我使用 PyQt5,当我尝试保存文件名时出现错误:

 csv_file_list = QtWidgets.QFileDialog.getOpenFileName(self, 'Open file', '', '*.csv')
    fileName = csv_file_list 
    fileName = QtWidgets.QFileDialog.getSaveFileName(self, 'Dialog Title', '/path/to/default/directory', selectedFilters='*.txt')
    if fileName:
        print (fileName)

它向我显示此错误:“selectedFilters”不是有效的关键字参数。

不知道是不是PyQt5导致的错误

最佳答案

由于各种原因,C++ 签名并不总是与 PyQt 签名完全匹配。这可能是 PyQt5 最大的弱点。确实需要一个全面的引用来详细说明 C++ API 和 PyQt API 之间的所有区别。它有点存在于 PyQt4 中,形式为 PyQt Class Reference (这是 Qt 文档的部分转换版本)。但目前还没有与 PyQt5 等效的东西。但是,您始终可以使用 Python 的内省(introspection)方法自行找出差异。

这是 getSaveFileName 的 C++ 签名:

QString getSaveFileName(QWidget *parent = Q_NULLPTR,
                        const QString &caption = QString(),
                        const QString &dir = QString(),
                        const QString &filter = QString(),
                        QString *selectedFilter = Q_NULLPTR,
                        Options options = Options()
                        )

这是从 help function 获得的 PyQt5 签名在 python 交互式 session 中 - 即 help(QtWidgets.QFileDialog.getSaveFileName):

getSaveFileName(parent: QWidget = None,
                caption: str = '',
                directory: str = '',
                filter: str = '',
                initialFilter: str = '',
                options: Union[QFileDialog.Options, QFileDialog.Option] = 0,
                ) -> Tuple[str, str]

如您所见,dir 参数已更改为 directoryselectedFilter 参数已更改为 initialFilter.

关于python - “selectedFilters”不是有效的关键字参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38121556/

相关文章:

python - 使用 Chrome 放大 TensorBoard 图表

python - 在python中解析IP地址和端口

python - 如何获取Python中通过@property创建的getter/setter方法的引用?

具有通用返回类的 Java 方法签名

python - 当 for 循环的变量有一段时间条件时,如何在 for 循环中获得步骤跳转

python - 构建系统发育树

python - pyqt5子级使用qml文件访问

python - PyQt:多个 QGridLayout

key - 来自 "Debian CD signing key <debian-cd@lists.debian.org>"的错误签名

java - 这里泛型需要什么?