getOpenFileUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options(), const QStringList &supportedSchemes = QStringList())
时间: 2024-02-25 15:59:53 浏览: 120
`getOpenFileUrl` 是 Qt 中的方法,与 PyQt 的 `QFileDialog.getOpenFileName` 不完全相同,但其用法与前者类似,只是返回的是一个 `QUrl` 类型的对象,可以通过 `toLocalFile()` 方法获取本地文件路径。
下面是使用 `getOpenFileUrl` 方法获取文件路径的示例代码:
```python
from PyQt5.QtWidgets import QFileDialog
# 设置默认路径和文件类型过滤器
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
file_filter = "All Files (*.*)"
# 获取文件路径
file_url, _ = QFileDialog.getOpenFileUrl(None, "选择文件", "", file_filter, options=options)
# 将文件路径转换为本地路径
file_path = file_url.toLocalFile()
print(file_path)
```
其中,第一个参数为父窗口,这里设置为 `None`,第二个参数是对话框标题,第三个参数是默认打开路径,第四个参数是文件类型过滤器。`options` 参数用于设置对话框选项,`DontUseNativeDialog` 表示不使用系统原生对话框。`selectedFilter` 参数用于返回所选的文件类型过滤器,这里我们没有使用它,所以将其设置为 `None`。`supportedSchemes` 参数用于设置支持的 URL 方案,这里我们也没有使用它,所以将其设置为默认值 `QStringList()`。
获取到的 `file_url` 是一个 `QUrl` 类型的对象,需要通过 `toLocalFile()` 方法将其转换为本地路径。
阅读全文