'''
QFileDialog 文件对话框:图像文件,文本文件
'''
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
class QDialogDemo(QWidget):
def __init__(self):
super().__init__()##继承父类构造函数
self.initUI()#初始化UI
def initUI(self):
#self.resize(600,600) #窗口大小
self.setWindowTitle('文件选择案例')#窗口名称
layout=QVBoxLayout() #垂直排列
self.button=QPushButton('选择图片')
self.button.clicked.connect(self.loadimage)#定义按钮的信号和槽
self.label=QLabel()
layout.addWidget(self.button)
layout.addWidget(self.label)
#以上为加载图片文件
self.button2 = QPushButton('选择文件')
self.button2.clicked.connect(self.loadfile) # 定义按钮的信号和槽
layout.addWidget(self.button2)
self.text=QTextEdit('文件名') ##文本框用于显示文件
layout.addWidget(self.text)
self.setLayout(layout)
#以上为打开文件
def loadimage(self):
image,_=QFileDialog.getOpenFileName(self,'打开文件','.','图像文件(*.jpg *.png)')#第三个参数是默认路径,第四个参数是打开哪一类图像
#print(image)
self.label.setPixmap(QPixmap(image)) #窗口随图片大小变化
def loadfile(self): ##打开text文本
#pass #函数设为空
dialog=QFileDialog()
dialog.setFileMode(QFileDialog.AnyFile)
dialog.setFilter(QDir.Files)
if dialog.exec():
filenames=dialog.selectedFiles()
f=open(filenames[0],encoding='utf-8',mode='r')
with f: ##关闭文件
data=f.read()
self.text.setText(data)
if __name__=='__main__': ##启动语句
app=QApplication(sys.argv)
main=QDialogDemo()
main.show()
sys.exit(app.exec_())