Python学习笔记------PyQt5第一个运行程序

一、前言

1.开发背景

在测试工具的开发里,检索功能是最基础的功能之一了,比如在现在很多的新能源车企中,需要给新的整车版本去跑大量的路试,来发现更多的软件问题,分析软件问题就需要大量的日志数据,这就需要一款对这些日志数据进行分析的工具,来实现日志数据的获取、打包、上传、分析等。而我们今天所要实现的功能就是日志数据的获取,也即本地日志文件的上传。

2.开发环境

  1. Pycharm + PyQt5
  2. 使用的PyQt5的相关库:QApplication,QWidget, QVBoxLayout, QPushButton, QTextEdit,QFileDialog,zipfile

二、程序编写

1.引入库

代码如下:

import sys
import zipfile
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QTextEdit, QFileDialog
import os

2.主程序

代码如下:

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.select_button = None
        self.textedit = None
        self.setWindowTitle('测试程序')
        self.setGeometry(300, 300, 400, 300)
        self.desktop_display()

    def desktop_display(self):
        v_layout = QVBoxLayout()
        # 创建一个展示框
        self.textedit = QTextEdit()
        # 设置展示框为只读模式
        self.textedit.setReadOnly(True)
        # 创建一个选择文件的按钮
        self.select_button = QPushButton('选取文件')
        # 将展示框和按钮添加到垂直布局管理器中
        v_layout.addWidget(self.textedit)
        v_layout.addWidget(self.select_button)
        # 将垂直布局管理器设置为中央控件
        self.setLayout(v_layout)
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

3.页面效果

在这里插入图片描述

4.添加选取文件函数

代码如下:

 def select_file(self):
        # 创建一个option对象,用来控制文件对话框的行为
        options = QFileDialog.Options()
        # 弹出一个文件选择对话框,getOpenFileName()函数中参数含义(self, 对话框的标题, 默认打开目录, 显示所有文件类型, 将创建的option对象传进函数)
        file_name, _ = QFileDialog.getOpenFileName(self, '选取文件', 'D:/', 'All Files (*)', options=options)
        # 判断是否选择了文件
        if file_name:
            try:
                # 获取选择文件的大小
                file_size = os.path.getsize(file_name)
                # 判断选择的文件是否为压缩包
                if zipfile.is_zipfile(file_name):
                    # 用只读模式打开选择的压缩包,并赋值给zip_ref
                    with zipfile.ZipFile(file_name, 'r') as zip_ref:
                        # 获取压缩包里的文件列表
                        file_list = zip_ref.namelist()
                        # 将结果展示在展示框中
                        self.text_edit.append(f'已选择压缩包:{file_name}, 文件大小:{file_size} 字节, 压缩包里的内容列表:{file_list}')
                else:
                    self.text_edit.append(f'已选择文件:{file_name}, 文件大小:{file_size} 字节')
            except Exception as e:
                self.text_edit.append(f'处理文件 {file_name} 时出现错误:{str(e)}')

函数实现过程中,对python中上下文管理语句结构with…as…有了一个新的认知,以往的认知都是with open as的用法,属实见识短了,本文中让它返回了一个zip文件上下文管理器对象,从而实现后面去获取压缩包内的文件列表,显示在展示框内

5.按钮与函数建立连接

self.select_button.clicked.connect(self.select_file)

总结

以上是我学习掌握的第一个PyQt5程序,实现了文件的选取,对文件大小、类型进行判断并展示,代码编写过程中学习到了很多,多多练习,期望自己的代码能力可以一点一点的提升

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值