基于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.pswp.cn/web/45279.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45279.shtml
英文地址,請注明出處:http://en.pswp.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…