“selectedFilters”不是有效的关键字argumen

2024-10-02 16:25:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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


Tags: csvself文件名错误openfilenamepyqt5list
1条回答
网友
1楼 · 发布于 2024-10-02 16:25:11

由于各种原因,C++签名并不总是与PYQT签名完全匹配。这可能是PyQt5最大的弱点。确实需要有一个全面的引用,详细介绍C++ API和PyQT API之间的所有区别。PyQt4的有点,以PyQt Class Reference(Qt文档的部分转换版本)的形式存在。但目前还没有类似于PyQt5的。但是,您可以始终使用python的自省方法来为自己解决差异。在

这是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()
                        )

这是PyQt5签名,它是从python交互会话中的help function获得的,即help(QtWidgets.QFileDialog.getSaveFileName)

^{pr2}$

如您所见,dir参数已更改为directory,而{}参数已更改为initialFilter。在

相关问题 更多 >