(收藏向,持续更新)pyqt5使用常见问题,遇到的坑及解决办法

本文汇总了PyQt5开发中遇到的界面卡死、多窗口、多线程多进程、部件性能和展示相关的问题,以及常用功能的实现技巧。包括QThread使用、窗口关闭控制、数据更新显示、窗口布局调整、图像处理和定时任务等解决方案,并提供了详细的操作示例。
摘要由CSDN通过智能技术生成

根据UI项目开发过程中遇到的问题,本文为整理出的相应解决方案汇总。持续更新。若有相应建议,可评论留言,集思广益。

目录

一、界面卡死、多窗口、多线程和多进程相关

1、PyQt5中使用线程QThread和Thread进行耗时操作的问题

点击查看

2、pyqt5 的多线程(QThread)遇到的坑

点击查看

3、主窗口关闭后子窗口仍在运行,或者窗口进程仍在运行

点击查看
补充:在closeEvent()中可以设置其它的窗口被关闭后的操作

4、子窗口关闭后,如何触发主窗口做相应操作

可以通过signal触发的方式:

  • 在子窗口中设置signal,重写closeEvent(),使在子窗口右上角关闭按钮被点击后,触发closeEvent,signal.emit(),从而使得主窗口中实例的子窗口对象的signal.connect()的函数被触发。由此实现通知机制。

5、主窗口关闭按钮被点击,进行关闭确认询问,且关闭所有线程

在这里插入图片描述

重写主窗口的closeEvent()函数:

    def closeEvent(self, event):
        """
        主窗口关闭后,令子窗口也关闭
        对主窗口的函数closeEvent进行重构
        - 退出软件时结束所有进程
        :param event:
        :return:
        """
        try:
            self.is_MainWindow_running = False
            reply = QMessageBox.question(self,
                                         '本程序',
                                         '是否要退出本程序',
                                         QMessageBox.Yes | QMessageBox.No,
                                         QMessageBox.No
                                         )
            if reply == QMessageBox.Yes:
                event.accept()
                os._exit(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值