zoukankan      html  css  js  c++  java
  • Python中界面阻塞情况的解决方案

    # 建议所有的界面更新动作都放在主线程中,否则textEdit控件可能会出现程序崩溃的问题
    
    from PySide2.QtWidgets import QApplication
    from PySide2.QtUiTools import QUiLoader
    from PySide2.QtCore import Signal, QObject
    from threading import Thread
    
    
    # 定义信号源
    class Mysignals(QObject):
        # 定义一个信号
        text_print = Signal(str)
    
    
    class Stat:
        def __init__(self):
            self.ui = QUiLoader().load('ui/test.ui')
            self.ui.button.clicked.connect(self.handleCalc)
            self.ms = Mysignals()
            # 监听自定义信号
            self.ms.text_print.connect(self.update_ui)
    
        def update_ui(self, str1):
            self.ui.textedit.setPlainText(str1)
    
        def handleCalc(self):
            def download():
                info = ''
                for i in range(5):
                    info += f'正在下载-----{i}
    '
                    # 发射自定义信号
                    self.ms.text_print.emit(info)
                    sleep(1)
    
            t1 = Thread(target=download)
            t1.start()
    
    
    app = QApplication()
    stat = Stat()
    stat.ui.show()
    app.exec_()
    
    ------学习贵在分享,贵在记录,贵在总结。
  • 相关阅读:
    BZOJ1054|HAOI2008移动玩具|广搜
    tarjan算法
    BJOJ2190|SDOI仪仗队|数论
    POJ2975|Nim|博弈论
    POJ1740|A NEW STONE GAME|博弈论
    python 单例模式
    linux 根据服务名称批量杀死进程
    python 任务计划
    python偏函数
    安装scrapy框架
  • 原文地址:https://www.cnblogs.com/kevin1220/p/14441194.html
Copyright © 2011-2022 走看看