难以理解 Qt 文档

Difficulty in understanding the Qt documentation

我试图在 PyQt5 中创建一个浏览器按钮,因此我尝试阅读有关 getOpenFileName 的 Qt 文档。这是文档的脚本:

QString QFileDialog::getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), 
const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, 
QFileDialog::Options options = Options())

*QWidget *parentQString *selectedFilter = nullptr中是什么意思?

&const QString &caption = QString()

中是什么意思

这些 *,& 适用于在 C 中使用 Qt 吗?或者如果我使用 Python 来使用 Qt,它们也适用吗?

我了解:

  1. 第一个参数是 parent class 也可以设置为 none

  2. 第二个参数是一个字符串,将用作 window

    的标题
  3. const QString &filter = QString()表示过滤到select个文件。

不过,我不明白QString *selectedFilter = nullptr。根据文档: 过滤器 selected 设置为 selectedFilter.

这是默认过滤器吗?那么如何实施呢?当我试验时,第一个过滤器似乎是默认过滤器,因此似乎不需要此选项!

一般来说,将一个函数从 Qt 转换为 PyQt5 是微不足道的,因为你展示了一些参数,但其他人必须理解函数的逻辑。这是“selectedFilter”参数的情况,returns 在选择文件时使用的过滤器。在 C++ 中,与 Python 不同,您只能 return 一个值,因此 return 其他值的技巧是使用指针,这就是当前的情况,但在 python 你可以 return 一个元组,所以在这种情况下处理它:

filename, selectedFilter = QtWidgets.QFileDialog.getOpenFileName(...)

另一方面,处理 PyQt5 文档的更简单方法是使用 python“帮助”:

$ python
>>> from PyQt5 import QtWidgets
>>> help(QtWidgets.QFileDialog.getOpenFileName)

输出:

Help on built-in function getOpenFileName:

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

其中显示 return 是一个包含 2 个字符串的元组,它们是所选文件的文件名和所选过滤器。