PythonQT5打包exe线程使用

 更新时间:2025年01月14日 09:01:47   作者:胡子哥502  
本文介绍了使用Python和QT5打包EXE文件,并在其中使用线程,打包时需要修改spec文件以加载资源文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

打包:

pyinstaller --noconsole --onefile test.py

–noconsole 表示不需要打开命令行

修改:test.spec

一般项目里面需要用的资源文件,比如lib、png、exe等。
需要单独修改spec文件

  pathex=['.'],
  binaries=[
    ('D:/test.png', '.'),
    ('D:/simsun.ttc', '.'),
     ('D:/teds.exe', '.')
    ],

再执行下面的命令即可打包加载资源文件到exe中。

pyinstaller test.spec

在py代码里面直接使用相对路径即可。

py里面获取图片路径方法:

def resource_path(relative_path):
    """ 获取资源的绝对路径 """
    try:
        # PyInstaller 创建的临时文件夹,或者当以 --onefile 模式打包时的路径
        base_path = sys._MEIPASS
    except Exception:
        # 如果不是打包后的环境,则使用当前工作目录
        base_path = os.path.abspath(".")
    rp = os.path.join(base_path, relative_path)
    return rp

使用:

 font_path = resource_path("simsun.ttc") 
 print('font_path: ', font_path)
 font_size = 16
 font = ImageFont.truetype(font_path, font_size)

隐藏和现实QT元素:

    def on_hide_show_click(self, params):
        if self._is_show == 1:
            self.frame_2.hide()
            self.frame_3.hide()
            # 去除限制最小高度和宽度
            self.setMinimumSize(0, 0)
            self.resize(self.width(), 50)
            self._is_show = 0
        else:
            self.frame_2.show()
            self.frame_3.show()
            self.resize(self.width(), self.height())
            # self.adjustSize()
            self._is_show = 1

按钮点击方法带入参数:

 self.pushButton.clicked.connect(lambda: self.on_hide_show_click(1))

线程使用:

# 定义线程class
class ThreadDemoHandle(QThread):
    # 定义信号,用于从线程中发送数据到主线程
    data_received = pyqtSignal(list)

	# p1 为参数,可以多个哦。
    def __init__(self, p1):
        super().__init__()
        self.p1 = p1

    def run(self):
        try:
            # 处理逻辑,比如发送请求等等。计算复杂逻辑。。。
            # 发送信号到主线程
            self.data_received.emit([self.p1, '结果'])
        except Exception as e:
        	# flush=True 会强制把日志刷到文件里面,不加的话,有时候不会写入文件
            print('线程处理错误:', e, flush=True)

# 使用
self.worker = ThreadDemoHandle(1200)
# handle_result_data 方法是处理线程返回的结果
self.worker.data_received.connect(self.handle_result_data)
self.worker.start()


@pyqtSlot(list)
def handle_result_data(self, result):
	print('结果:', result[0], result[1])
	# 比如渲染 界面等等。

到此这篇关于PythonQT5打包exe线程使用的文章就介绍到这了,更多相关PythonQT5打包exe线程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:

相关文章

  • python在协程中增加任务实例操作

    python在协程中增加任务实例操作

    在本篇文章里小编给大家整理的是一篇关于python在协程中增加任务实例操作内容,有兴趣的朋友们可以学习下。
    2021-02-02
  • Python实现对特定列表进行从小到大排序操作示例

    Python实现对特定列表进行从小到大排序操作示例

    这篇文章主要介绍了Python实现对特定列表进行从小到大排序操作,涉及Python文件读取、计算、正则匹配、排序等相关操作技巧,需要的朋友可以参考下
    2019-02-02
  • Python答题卡识别并给出分数的实现代码

    Python答题卡识别并给出分数的实现代码

    本文带领大家学习Python答题卡识别并给出分数的实现代码,代码实现思路清晰,简单易懂,Python识别答题卡相关知识感兴趣的朋友一起看看吧
    2021-06-06
  • 详解Python调用华为API实现图像标签

    详解Python调用华为API实现图像标签

    华为云图像标签可识别上千种通用物体以及数百种场景标签,一个图像可包含多个标签内容,语义内容非常丰富。本文将通过Python调用华为API实现图像标签,需要的可以参考一下
    2022-04-04
  • Python 十个字典用法使用技巧归纳

    Python 十个字典用法使用技巧归纳

    今天小编帮大家简单介绍下Python的一种数据结构: 字典,字典是一种可变容器模型,且可存储任意类型对象,它用于存放具有映射关系的数据,这里介绍归纳十个字典的用法技巧,需要的朋友可以参考下
    2022-01-01
  • Python Pandas中缺失值NaN的判断,删除及替换

    Python Pandas中缺失值NaN的判断,删除及替换

    缺失值是指数据集中的某些观察存在遗漏的指标值,缺失值的存在同样会影响到数据剖析和挖掘的效果,下面这篇文章主要给大家介绍了关于Python Pandas中缺失值NaN的判断,删除及替换的相关资料,需要的朋友可以参考下
    2022-01-01
  • Python 实现自动化Excel报表的步骤

    Python 实现自动化Excel报表的步骤

    这篇文章主要介绍了Python 实现自动化Excel报表的步骤,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04
  • Python中有几个关键字

    Python中有几个关键字

    在本篇文章里小编给大家分享的是一篇关于Python中关键字个数的相关知识点内容,需要的朋友们可以学习下。
    2020-06-06
  • Python实现PDF页面的删除与添加功能

    Python实现PDF页面的删除与添加功能

    在处理PDF文档的过程中,我们时常会需要对PDF文档中的页面进行编辑操作的情况,如插入和删除页面,通过添加和删除PDF页面,我们可以增加内容或对不需要的内容进行删除,本文将介绍如何使用Python代码实现在PDF文档中添加和删除页面
    2024-04-04
  • 动态规划之矩阵连乘问题Python实现方法

    动态规划之矩阵连乘问题Python实现方法

    这篇文章主要介绍了动态规划之矩阵连乘问题Python实现方法,较为详细的分析了矩阵连乘问题的概念、原理并结合实例形式分析了Python相关实现技巧,需要的朋友可以参考下
    2017-11-11

最新评论