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
相关产品推荐
相关产品推荐

