绘制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