環境搭建
基于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