首页 > 编程语言 >【PyQt】pyqt进行封装程序为exe文件

【PyQt】pyqt进行封装程序为exe文件

时间:2025-01-10 09:58:56浏览次数:3  
标签:__ exe app PyQt pyqt button 100 self

@[toc]pyqt进行封装程序为exe文件

pyqt进行封装程序为exe文件

将 PyQt 程序打包为可执行文件(.exe)可以使用 PyInstaller 工具。PyInstaller 是一个流行的 Python 打包工具,能够将 Python 脚本及其依赖项打包为独立的可执行文件。以下是详细步骤:

1.安装 PyInstaller

首先,确保你已经安装了 PyInstaller。如果没有安装,可以使用 pip 安装:

pip install pyinstaller

2. 编写 PyQt 程序

假设你的 PyQt 程序文件名为 my_app.py,内容如下:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("My PyQt App")
        self.setGeometry(100, 100, 300, 200)

        button = QPushButton("Click Me", self)
        button.setGeometry(100, 50, 100, 30)
        button.clicked.connect(self.on_button_click)

    def on_button_click(self):
        print("Button clicked!")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

3. 使用 PyInstaller 打包程序

在命令行中运行以下命令,将 my_app.py 打包为 .exe 文件:

pyinstaller --onefile --windowed my_app.py

参数说明:
–onefile:将所有文件打包为一个单独的 .exe 文件。

–windowed:禁止显示命令行窗口(适用于 GUI 程序)。

my_app.py:你的 PyQt 程序入口文件。

4. 查找生成的 .exe 文件

打包完成后,生成的 .exe 文件会位于 dist 目录中。例如:

dist/
  my_app.exe

可以直接运行 my_app.exe。

添加图标

1.在程序中加载图标

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton
from PyQt5.QtGui import QIcon

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("My PyQt App")
        self.setGeometry(100, 100, 300, 200)
        self.setWindowIcon(QIcon('icon.png'))  # 加载图标文件

        button = QPushButton("Click Me", self)
        button.setGeometry(100, 50, 100, 30)
        button.clicked.connect(self.on_button_click)

    def on_button_click(self):
        print("Button clicked!")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

2.将图标文件放在与主程序同一目录下进行打包

在这里插入图片描述

3.打包程序

pyinstaller --onefile --windowed my_app.py

4.将图像放在dist中与与exe文件同一目录

在这里插入图片描述

标签:__,exe,app,PyQt,pyqt,button,100,self
From: https://blog.csdn.net/weixin_59422604/article/details/145048745

相关文章

  • Java 线程池 ThreadPoolExecutor
    引言在多线程编程中,ThreadPoolExecutor是Java平台提供的一个强大工具,它允许开发者通过管理一组预先创建的线程来执行任务,从而提高了应用程序的性能和资源利用率。本文将深入探讨ThreadPoolExecutor的工作原理,并结合实际案例说明如何正确配置和使用线程池。一、线程池......
  • Java 线程池 ThreadPoolExecutor 底层原理与源码分析
    引言我们探讨了ThreadPoolExecutor的基本概念、内部机制以及部分源码实现。本文将继续深入研究该类的更多细节,并结合提供的文档内容,进一步解析线程池的工作流程、任务提交和执行的具体过程,以及如何通过自定义配置来优化性能。一、线程池的任务提交与执行1.1execute()......
  • 写一个pyqt5程序的步骤(类,继承,init,类做参数等)
    kimi生成的,两种区别和相似在哪。类没有init函数会怎样?kimi生成importsysfromPyQt5.QtWidgetsimportQApplication,QWidget,QVBoxLayout,QLineEditclassExample(QWidget):def__init__(self):super().__init__()self.initUI()definitUI......
  • 【pyqt】(八)ui文件使用
    ui文件使用前面我们已经学过了简单的UI文件创建(利用QtDesigner)和基础控件的使用。现在我们学习如何把二者融合起来完成开发。UI文件以XML格式存储界面的布局和各种控件的属性,我们可以利用QtDesigner开发界面,然后利用代码来实现后端的逻辑编程。这样可以将界面设计部分......
  • 【GUI-pyqt5】QAbstractButton类
    1.描述所有按钮控件的基类提供按钮的通用功能2.继承QWidget3.功能3.1提示文本3.1.1APIAPI功能备注setText(str)设置按钮提示文本-text()获取按钮提示文本-3.1.2应用场......
  • 安卓编译报错Execution failed for task ‘:expo-modules-core:prepareBoost‘. Not i
    作者:Kovli重要通知:红宝书第5版2024年12月1日出炉了,感兴趣的可以去看看,https://u.jd.com/saQw1vP红宝书第五版中文版红宝书第五版英文原版pdf下载(访问密码:9696)报错如下[RUN_GRADLEW]Executionfailedfortask':expo-modules-core:prepareBoost'.[RUN_GRADLEW]>Cou......
  • sys.dm_exec_connections:查询与 SQL Server 实例建立的连接有关的信息以及每个连接的
    文章目录引言I基于dm_exec_connections查询客户端ip权限物理联接时间范围dm_exec_connections表seealso:监视SQLServer内存使用量资源信号灯DMVsys.dm_exec_query_resource_semaphores(确定查询执行内存的等待)引言查询历史数据库客户端ip应......
  • CF2057E2 Another Exercise on Graphs (hard version) 题解
    感觉和[NOI2018]归程有点像(?考虑对每个询问二分答案,设二分到的答案是\(x\),要判断路径上的\(k\)大值是否能不大于\(x\),只需先将价值不大于\(x\)的所有边的边权设为\(0\),其他边设为\(1\),跑一遍\(a\)到\(b\)的最短路,看最短路长度是否不大于\(k\)即可。因为\(x\)的......
  • 自动驾驶ADAS算法--后视碰撞预警算法实现和测试demo的exe
    下载测试工程后可以根据《自动驾驶ADAS算法--测试工程环境搭建-CSDN博客》完成环境的搭建。测试的exe程序,无需解压码就可以体验算法测试效果(代码原工程非免费介意无下载)通过网盘分享的文件:后视碰撞预警链接:https://pan.baidu.com/s/1j6FZKLPLN2RN9SdwZso0uA提取码:vdh3......
  • EBS在form中调用另一个form的方法,函数:fnd_function.execute
    如何在form1中调用form2呢?可以使用函数fnd_function.execute。其函数定义如下:fnd_function.execute(function_name,--功能名称open_flag,session_flag,--两个form是否使用同一个会话other_params--参数activate_flag--光标是否移到新formbrower_target);例子1:fnd_function......