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, )
出现两个问题:
directory参数不生效,初始打开路径错误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
相关产品推荐
相关产品推荐

