PyQt5 加载图片和文本文件
首先我们来看一组效果
选择图片文本设置完以后
选择过程中
核心代码解释
# 这个函数是用来打开电脑的资源管理器选择照片用的
def loadFile(self):
print("load--file")
# QFileDialog就是系统对话框的那个类第一个参数是上下文,第二个参数是弹框的名字,第三个参数是开始打开的路径,第四个参数是需要的格式
fname, _ = QFileDialog.getOpenFileName(self, '选择图片', 'c:\\', 'Image files(*.jpg *.gif *.png)')
self.label.setPixmap(QPixmap(fname))
# 这个函数是打开文本选择器,加载文本的函数
def load_text(self):
print("load--text")
#初始化这个实例,设置一些基本属性
dlg = QFileDialog()
dlg.setFileMode(QFileDialog.AnyFile)
dlg.setFilter(QDir.Files)
# 当选择器关闭的时候
if dlg.exec_():
# 拿到所选择的的文本
filenames = dlg.selectedFiles()
#读取文本内容设置到TextEdit当中来
f = open(filenames[0], 'r')
with f:
data = f.read()
self.content.setText(data)
完整代码
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class filedialogdemo(QWidget):
def __init__(self, parent=None):
super(filedialogdemo, self).__init__(parent)
layout = QVBoxLayout()
self.btn = QPushButton()
self.btn.clicked.connect(self.loadFile)
self.btn.setText("从文件中获取照片")
layout.addWidget(self.btn)
self.label = QLabel()
layout.addWidget(self.label)
self.btn_2 = QPushButton()
self.btn_2.clicked.connect(self.load_text)
self.btn_2.setText("加载电脑文本文件")
layout.addWidget(self.btn_2)
self.content = QTextEdit()
layout.addWidget(self.content)
self.setWindowTitle("测试")
self.setLayout(layout)
def loadFile(self):
print("load--file")
fname, _ = QFileDialog.getOpenFileName(self, '选择图片', 'c:\\', 'Image files(*.jpg *.gif *.png)')
self.label.setPixmap(QPixmap(fname))
def load_text(self):
print("load--text")
dlg = QFileDialog()
dlg.setFileMode(QFileDialog.AnyFile)
dlg.setFilter(QDir.Files)
if dlg.exec_():
filenames = dlg.selectedFiles()
f = open(filenames[0], 'r')
with f:
data = f.read()
self.content.setText(data)
if __name__ == '__main__':
app = QApplication(sys.argv)
fileload = filedialogdemo()
fileload.show()
sys.exit(app.exec_())
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~