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

PyQt5调用QtGui.QFileDialog报错,如何正确打开文件浏览器对话框?

解决PyQt5中QtGui.QFileDialog找不到的问题

嘿,这个问题我之前从PyQt4切换到PyQt5时也踩过一模一样的坑!原因很简单——PyQt5对模块结构做了调整,把**QFileDialog**从QtGui模块迁移到QtWidgets模块里了。

你遇到的报错:

Traceback (most recent call last): File "H:/4-Programming/OpenTester/OpenTester.py", line 136, in MenuNew fileToOpen = QtGui.QFileDialog.getOpenFileName(self) AttributeError: module 'PyQt5.QtGui' has no attribute 'QFileDialog'

就是因为还在沿用PyQt4的写法,去QtGui里找已经被移走的QFileDialog,自然会触发属性找不到的错误。

两种快速解决方法:

  • 方法一:直接修改调用路径
    既然你已经导入了QtWidgets,直接把代码改成下面这样就行:

    fileToOpen = QtWidgets.QFileDialog.getOpenFileName(self)
    
  • 方法二:单独导入QFileDialog
    如果想让代码更简洁,也可以在导入语句里单独加一行:

    from PyQt5.QtWidgets import QFileDialog
    

    之后直接调用就好:

    fileToOpen = QFileDialog.getOpenFileName(self)
    

最后补个小提示:PyQt5里很多原本在QtGui的UI组件(比如QDialog、QPushButton这类)都统一挪到QtWidgets了,以后再碰到类似的属性找不到问题,先去QtWidgets里找找看准没错~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:03:23