入门 PyQt6 看过来(案例)07~ 文件选择

本文实现一个图片和文本文件选择器的案例,效果如下:

文件选择查看功能很简单,只需要设计好图片文件和文本文件的选择函数就可以了。

1 图片文件选择

  #图片文件选择槽函数,支持png ico jpg格式文件
  def imgFile(self):
        fname, _tmp = QFileDialog.getOpenFileNames(self,'Open file','./images',"*.png *.ico *.jpg")
        # self.lb.setPixmap(QPixmap(fname))
        try:
            pixmap = QPixmap(fname[0])
            if not pixmap.isNull():
                self.lb.setPixmap(pixmap)
            else:
                print(f"无法加载图片: {fname}")
        except Exception as e:
            print(f"发生异常: {e}")

在面板中配置信号触发按钮:

		self.btn1 = QPushButton("选择图片文件")
        self.btn1.clicked.connect(self.imgFile)

2 文本文件选择

 #文本文件选择槽函数,定义DFileDialog弹窗
 def textFile(self):
        dlg = QFileDialog()
        dlg.setFileMode(QFileDialog.FileMode.AnyFile)
        dlg.setFilter(QDir.Filter.Files)

        if dlg.exec():
            fnames=dlg.selectedFiles()
            f = open(fnames[0],'r',encoding='utf-8')
            with f:
                txt = f.read()
                self.te.setText(txt)

面板中进行配置信号触发位置:

		self.btn2 = QPushButton("选择文本文件")
        self.btn2.clicked.connect(self.textFile)

3 定义布局盒子

#垂直布局盒子
layout = QVBoxLayout()

把按钮和文本框都添加到布局盒子里,添加方式如下:

layout.addWidget(self.btn1)

4 完整代码

# -*- coding:utf-8 -*-
"""
------------------------------------------------
File Name: 文件选择.py
Description:
Author: lzq
date:2024-07-25 10:10
------------------------------------------------
"""
import sys

from PyQt6.QtCore import QDir
from PyQt6.QtGui import *
from PyQt6.QtWidgets import QWidget, QVBoxLayout, QPushButton, QLabel, QTextEdit, QFileDialog, QApplication


class MyFileWidget(QWidget):
    def __init__(self,parent=None):
        super(MyFileWidget,self).__init__(parent)
        self.setUI()
    def setUI(self):
        self.setWindowTitle("文件选择案例")
        self.setWindowIcon(QIcon('./web.ico'))
        layout = QVBoxLayout()
        self.btn1 = QPushButton("选择图片文件")
        self.btn1.clicked.connect(self.imgFile)
        layout.addWidget(self.btn1)
        self.lb = QLabel("")
        layout.addWidget(self.lb)
        self.btn2 = QPushButton("选择文本文件")
        self.btn2.clicked.connect(self.textFile)
        layout.addWidget(self.btn2)
        self.te = QTextEdit()
        layout.addWidget(self.te)
        self.setLayout(layout)
    def imgFile(self):
        fname, _tmp = QFileDialog.getOpenFileNames(self,'Open file','./images',"*.png *.ico *.jpg")
        # self.lb.setPixmap(QPixmap(fname))
        try:
            pixmap = QPixmap(fname[0])
            if not pixmap.isNull():
                self.lb.setPixmap(pixmap)
            else:
                print(f"无法加载图片: {fname}")
        except Exception as e:
            print(f"发生异常: {e}")
    def textFile(self):
        dlg = QFileDialog()
        dlg.setFileMode(QFileDialog.FileMode.AnyFile)
        dlg.setFilter(QDir.Filter.Files)

        if dlg.exec():
            fnames=dlg.selectedFiles()
            f = open(fnames[0],'r',encoding='utf-8')
            with f:
                txt = f.read()
                self.te.setText(txt)
if __name__=='__main__':
    app = QApplication(sys.argv)
    w = MyFileWidget()
    w.show()
    sys.exit(app.exec())

 下一篇:布局管理


本文结束,自己创建的一个技术球球群 九71六71八2七,想一起卷的看过来!。

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路卿老师

大哥大姐给点吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值