基于pyqt5实现xlsx选择器应用程序

环境搭建

基于python3.12+pyqt5

pip3 install PyQt5
pip3 install pyinstallerpyinstaller --onefile --windowed test.py

代码

新建main.py

import sys  
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QLineEdit, QFileDialog  class MyApp(QWidget):  def __init__(self):  super().__init__()  self.initUI()  def initUI(self):  # 设置窗口标题和大小  self.setWindowTitle('xslx文件选择器')  self.setGeometry(100, 100, 300, 100)  # 创建垂直布局  mainLayout = QVBoxLayout()  # 第一行布局  firstRowLayout = QHBoxLayout()  # 输入框  self.lineEdit = QLineEdit(self)  self.lineEdit.setReadOnly(True)  # 设置输入框为只读firstRowLayout.addWidget(self.lineEdit)  # 选择CSV文件的按钮  btnLoadCsv = QPushButton('选择xlsx文件', self)  btnLoadCsv.clicked.connect(self.loadCsvFile)  firstRowLayout.addWidget(btnLoadCsv)  # 将第一行布局添加到主布局  mainLayout.addLayout(firstRowLayout)  # 第二行布局(这里只放一个按钮作为示例)  secondRowLayout = QHBoxLayout()  btnSecond = QPushButton('点击', self)# 这里可以连接按钮的clicked信号到任何你希望执行的槽函数btnSecond.clicked.connect(self.on_second_button_clicked)  secondRowLayout.addWidget(btnSecond)  # 将第二行布局添加到主布局  mainLayout.addLayout(secondRowLayout)  # 设置窗口的主布局  self.setLayout(mainLayout)  def loadCsvFile(self):  # 使用文件对话框选择CSV文件  fileName, _ = QFileDialog.getOpenFileName(self, "选择xlsx文件", "", "xlsx files (*.xlsx)")  if fileName:  # 将选中的文件路径显示在输入框中  self.lineEdit.setText(fileName)  # 定义槽函数  def on_second_button_clicked(self):  # 当按钮被点击时,打印信息到控制台  print("按钮被点击了!") 
if __name__ == '__main__':  app = QApplication(sys.argv)  ex = MyApp()  ex.show()  sys.exit(app.exec_())

打包

pyinstaller --onefile --windowed main.py

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/45279.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode 665.非递减数列

1.题目要求: 给你一个长度为 n 的整数数组 nums &#xff0c;请你判断在 最多 改变 1 个元素的情况下&#xff0c;该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的&#xff1a; 对于数组中任意的 i (0 < i < n-2)&#xff0c;总满足 nums[i] < nums[i…

Java 设计模式系列:外观模式

简介 外观模式&#xff08;Facade Pattern&#xff09;是一种设计模式&#xff0c;又名门面模式&#xff0c;是一种通过为多个复杂的子系统提供一个一致的接口&#xff0c;而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口&#xff0c;外部应用程序不用关心内部…

Android中RecyclerView使用详解(一)

目录 概述优点列表布局RecyclerView一、创建RecyclerView并且在布局中绑定二、实现RecyclerView单个item的布局三、给RecyclerView写一个对应的适配器Adapter1.创建自定义的ViewHolder2.继承Adapter&#xff0c;泛型使用我们自定义的ViewHolder3.重写Adapter的三个方法onCreate…

线程安全(二)synchronized 的底层实现原理、锁升级、对象的内存结构

目录 一、基础使用1.1 不加锁的代码实现1.2 加锁的代码实现二、实现原理2.1 synchronized 简介2.2 对象监控器(Monitor)2.3 加锁过程第一步:判断 Owner 指向第二步:进入 EntryList 阻塞第三步:主动进入 WaitSet 等待三、锁升级3.1 对象的内存结构3.2 Mark Word 对象头3.3 …

MySQL sql_safe_updates参数

sql_safe_updates 是 MySQL 中的一个系统变量&#xff0c;用于控制 MySQL 服务器是否允许在没有使用 KEY 或 LIMIT 子句的 UPDATE 或 DELETE 语句上执行更新或删除操作。当这个变量被设置为 ON 时&#xff0c;MySQL 会拒绝那些可能影响到表中大量行的 UPDATE 或 DELETE 语句&am…

SpringBoot实战:多表联查

1. 保存和更新公寓信息 请求数据的结构 Schema(description "公寓信息") Data public class ApartmentSubmitVo extends ApartmentInfo {Schema(description"公寓配套id")private List<Long> facilityInfoIds;Schema(description"公寓标签i…

LLM用于时序预测真的不行,连推理能力都没用到

语言模型真的能用于时序预测吗&#xff1f;根据贝特里奇头条定律&#xff08;任何以问号结尾的新闻标题&#xff0c;都能够用「不」来回答&#xff09;&#xff0c;答案应该是否定的。事实似乎也果然如此&#xff1a;强大如斯的 LLM 并不能很好地处理时序数据。 时序&#xff0…

tkinter-TinUI-xml实战(11)多功能TinUIxml编辑器

引言 在TinUIXml简易编辑器中&#xff0c;我们通过TinUI搭建了一个简易的针对TinUIXml布局的编辑器&#xff0c;基本掌握了TinUIXml布局和TinUIXml的导入与导出。现在&#xff0c;就在此基础上&#xff0c;对编辑器进行升级。 本次升级的功能&#xff1a; 更合理的xml编辑与…

docker私有仓库harbor安装

Harbor默认安装 下载harbor https://github.com/goharbor/harbor/releases/download/v2.11.0/harbor-offline-installer-v2.11.0.tgz 目前要求docker版本&#xff0c;docker 20.10.10-ce &#xff0c;和docker-compose 1.18.0 查看 docker-compose版本 docker-compose --ver…

Django前后端打通

跨域问题 【 0 】前言 ​ ​ 同源策略&#xff08;Same Origin Policy&#xff09;是浏览器安全策略的重要组成部分&#xff0c;它限制了来自不同源的网页之间的数据交互&#xff0c;以防止恶意攻击。当一个网页尝试执行与它的源&#xff08;即协议、域名和端口&#xff09…

【区分vue2和vue3下的element UI Carousel 走马灯组件,分别详细介绍属性,事件,方法如何使用,并举例】

在 Vue 2 中&#xff0c;我们通常使用 Element UI&#xff0c;而在 Vue 3 中&#xff0c;我们则使用 Element Plus 作为其替代品。对于 Carousel 走马灯组件&#xff0c;这两个库提供了相似的功能&#xff0c;但在 Vue 2 和 Vue 3 的上下文中&#xff0c;它们的属性、事件和方法…

C\C++ 终端输出带有颜色的字符

终端显示带有颜色的字符 终端显示带有颜色的字符 终端显示带有颜色的字符背景&#xff1a;测试机器&#xff0c;win10系统&#xff0c; VS2022编写字体设置不同的颜色背景色光标移动 &#xff08;这个用的估计不是很多&#xff09;字体设置动态显示C cout 也可以测试代码准确的…

接口基础知识3:详解url

课程大纲 一、定义 URL即访问的链接&#xff0c;是Uniform Resource Locator的缩写&#xff0c;译为"统一资源定位符"。 URL是一种URI&#xff0c;它标识一个互联网资源&#xff0c;并指定对其进行操作或获取该资源的方法。可能通过对主要访问手段的描述&#xff0c…

SpringBoot详细解析

1.什么是springboot springboot也是spring公司开发的一款框架。为了简化spring项目的初始化搭建的。那么spring对应springboot有什么缺点呢&#xff1f; spring项目搭建的缺点: 配置麻烦依赖tomcat启动慢 2.springboot的特点 自动配置 Spring Boot的自动配置是一个运行时&…

Docker 安装ros 使用rviz 等等图形化程序

Docker 安装ros 使用rviz 等等图形化程序 ubuntu 版本与ros 发行版本对应 如何安装其它版本ros 此时考虑使用docker 易于维护 地址&#xff1a; https://hub.docker.com/r/osrf/ros 我主机是 ubuntu22.04 使用这个标签 melodic-desktop-full 1 clone 镜像到本机 docker pu…

Android OkHttp3中HttpLoggingInterceptor使用

目录 一 概述1.1 日志级别 二 使用2.1 引入依赖2.2 创建对象2.3 添加拦截器 三 结果展示3.1 日志级别为BODY3.2 日志级别为BASIC3.3 日志级别为HEADERS 参考 一 概述 HttpLoggingInterceptor是OkHttp3提供的拦截器&#xff0c;用来记录HTTP请求和响应的详细信息。 1.1 日志级…

基于IDEA的Lombok插件安装及简单使用

lombok介绍 Lombok能以注解形式来简化java代码&#xff0c;提高开发效率。开发中经常需要写的javabean&#xff0c;都需要花时间去添加相应的getter/setter&#xff0c;也许还要去写构造器、equals等方法&#xff0c;而且需要维护。而Lombok能通过注解的方式&#xff0c;在编译…

Spring AOP 实现 Excel 导出统一处理

你好&#xff0c;我是柳岸花开。在实际开发中&#xff0c;经常会遇到需要导出 Excel 数据的需求。为了避免代码重复&#xff0c;我们可以使用 Spring AOP&#xff08;面向切面编程&#xff09;来实现 Excel 导出的统一处理。本文将介绍如何使用 Spring AOP 在项目中统一处理 Ex…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(十三)-更换无人机控制器

引言 本文是3GPP TR 22.829 V17.1.0技术报告&#xff0c;专注于无人机&#xff08;UAV&#xff09;在3GPP系统中的增强支持。文章提出了多个无人机应用场景&#xff0c;分析了相应的能力要求&#xff0c;并建议了新的服务级别要求和关键性能指标&#xff08;KPIs&#xff09;。…

枚举的高阶用法之枚举里写方法以及注入spring的bean

1、前言 一般我们使用枚举都是用来定义一些常量。比如我们需要一个表示订单类(pc订单、手机订单)的常量,那我们就可以使用枚举来实现,如下: AllArgsConstructor public enum OrderTypeEnum{PC("PC", "电脑端"),PHONE("PHONE", "手机端&quo…