You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt6中使用QFileDialog获取目录路径时参数失效问题求助

PyQt6 QFileDialog 目录选择参数失效问题解决

环境信息

  • 名称:PyQt6
  • 版本:6.1.0
  • 操作系统:Ubuntu 20.04.5 LTS

问题描述

使用以下代码调用QFileDialog.getExistingDirectory获取目录路径时:

from PyQt6.QtWidgets import QFileDialog
import os

HOME_PATH = os.getenv("HOME")
...

dir_path = QFileDialog.getExistingDirectory(
    parent=self,
    caption="选择目录",
    directory=HOME_PATH,
    options=QFileDialog.Option.ShowDirsOnly,
)

出现两个问题:

  1. directory参数不生效,初始打开路径错误
  2. ShowDirsOnly选项失效,界面显示文件且无法选择目录(界面如下):

目录选择失败界面

解决方案

核心原因

Ubuntu(GNOME桌面)下PyQt6默认调用原生GTK文件对话框,该对话框不兼容Qt的ShowDirsOnly等参数,导致配置失效。

方法1:强制使用Qt原生对话框

添加DontUseNativeDialog选项,强制启用Qt自带的对话框,所有参数即可正常生效:

dir_path = QFileDialog.getExistingDirectory(
    parent=self,
    caption="选择目录",
    directory=HOME_PATH,
    options=QFileDialog.Option.ShowDirsOnly | QFileDialog.Option.DontUseNativeDialog,
)

方法2:验证并修正初始路径

先确认HOME_PATH是否正确获取,可添加打印语句排查:

HOME_PATH = os.getenv("HOME")
print(HOME_PATH)  # 检查输出是否为有效路径

若路径为空,可手动指定默认路径(如"/home/your-username")。

方法3:升级PyQt6版本

PyQt6 6.1.0存在部分兼容性问题,升级到最新稳定版可能修复该bug:

pip install --upgrade PyQt6

内容的提问来源于stack exchange,提问作者luku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 17:25:15