PyQt5解决:未加载Qt5Core.pdb或NameError: name ‘QFileDialog‘ is not defined

vs2019+python3+PyQt5:

绘制Ui界面,编写“选择本地图片上传显示”按钮的代码时出现错误


问题描述

按下“选择图片”按钮会显示如下错误:
1、NameError: name ‘QFileDialog’ is not defined
2、0x00007FFDD45304E8 (Qt5Core.dll) (python.exe 中)处有未经处理的异常: 请求了严重的程序退出。
3、未加载Qt5Core.pdb

    def openImage(self):
       global imgNamepath  # 这里为了方便别的地方引用图片路径,将其设置为全局变量
       # 弹出一个文件选择框,第一个返回值imgName记录选中的文件路径+文件名,第二个返回值imgType记录文件的类型
       # QFileDialog就是系统对话框的那个类第一个参数是上下文,第二个参数是弹框的名字,第三个参数是默认打开的路径,第四个参数是需要的格式
       imgNamepath, imgType= QtWidgets.QFileDialog.getOpenFileName(self.centralwidget, "选择图片","C:\\","*.jpg;;*.png;;All Files(*)")
       # 通过文件路径获取图片文件,并设置图片长宽为label控件的长、宽
       img = QtGui.QPixmap(imgNamepath).scaled(self.label_2.width(), self.label_2.height())
       # 在label控件上显示选择的图片
       self.label_2.setPixmap(img)
       # 显示所选图片的路径
       self.lineEdit.setText(imgNamepath)

解决方案:

方案一:
QFileDialog是在QtWidgets module,所以需要在QFileDialog前加上QtWidgets:

imgNamepath= QtWidgets.QFileDialog.getOpenFileName(self.centralwidget, "选择图片","C:\\","*.jpg;;*.png;;All Files(*)")

方案二:
如果不加QtWidgets,可以在py文件顶部从模块导入它:

from PyQt5.QtWidgets import QFileDialog 

你可能感兴趣的:(python,qt5)