基于python3.12+pyqt5
pip3 install PyQt5
pip3 install pyinstaller
pyinstaller --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
因篇幅问题不能全部显示,请点此查看更多更全内容