首页 > 其他分享 >PySide2如何使加载耗时组件

PySide2如何使加载耗时组件

时间:2023-09-25 10:35:42浏览次数:31  
标签:__ self label 耗时 PySide2 button MainWindow 加载

QTherad方式

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time:2023/9/25 10:12
# @Software:PyCharm
__author__ = "JentZhang"

from PySide2.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QLabel
from PySide2.QtCore import QThread, Signal


class Worker(QThread):
    finished_signal = Signal(str)

    def run(self):
        # 模拟耗时任务
        import time
        time.sleep(3)
        self.finished_signal.emit("Task Finished!")


class MainWindow(QWidget):
    def __init__(self):
        super(MainWindow, self).__init__()

        self.layout = QVBoxLayout(self)
        self.label = QLabel("Press the button to start the task.")
        self.button = QPushButton("Start Task")

        self.layout.addWidget(self.label)
        self.layout.addWidget(self.button)

        self.button.clicked.connect(self.startTask)

    def startTask(self):
        self.worker = Worker()
        self.worker.finished_signal.connect(self.onTaskFinished)
        self.label.setText("Task is running...")
        self.button.setEnabled(False)
        self.worker.start()

    def onTaskFinished(self, message):
        self.label.setText(message)
        self.button.setEnabled(True)


app = QApplication([])
window = MainWindow()
window.show()
app.exec_()

QTimer方式

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time:2023/9/25 10:28
# @Software:PyCharm
__author__ = "JentZhang"

from PySide2.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel
from PySide2.QtCore import QTimer

app = QApplication([])


class MainWindow(QWidget):
    def __init__(self):
        super(MainWindow, self).__init__()

        self.layout = QVBoxLayout(self)
        self.label = QLabel("Loading...")
        self.layout.addWidget(self.label)

        # 使用 QTimer 延迟加载
        QTimer.singleShot(1000, self.loadComponent)

    def loadComponent(self):
        # 这里模拟了一个耗时的加载过程
        # 实际应用中,这里可以是真正的组件加载代码
        self.label.setText("Component Loaded!")


window = MainWindow()
window.show()
app.exec_()

标签:__,self,label,耗时,PySide2,button,MainWindow,加载
From: https://www.cnblogs.com/JentZhang/p/17727359.html

相关文章

  • dleeeor()确定加载动态库时缺少的符号
       [plugins_open_pluginplugins.c:79]1970-01-01T17:46:22Z|00003|plugins|INFO|netdev_registernotsupportedby/var/lib/plugins/libacl_pluginplugin[plugins_open_pluginplugins.c:83]1970-01-01T17:46:22Z|00004|plugins|INFO|ofproto_registernotsupported......
  • 如何实现图片预加载和加载进度条
    很久没有发文了今天水一篇文章,图片预加载且展示加载的进度条,在现代的Web开发中,优化用户体验至关重要。一种常见的方法是在页面加载时预加载图片,并展示一个加载进度条,让用户了解加载进度。在本文中,我们将深入探讨如何实现这两个关键功能,以提高网站性能和用户满意度,首先谈一下我的思......
  • 说说 Java 类加载机制是什么
    加载,获取类的字节码,并且放到jvm的元空间中,生成Class对象链接验证:验证字节码是否符合jvm的规范,是否安全等准备:将静态变量赋默认值(不是自己的默认值,而是int是0这种)解析:将符号引用转为直接引用初始化:将静态变量赋初始值(自己写的初始值),执行静态代码块使用卸载:将Class对象清......
  • 管理系统加载页面的实现
    1、页面回顾2、功能设置将进度条重命名为MyProgress:在工具箱中找到一个计时器Timer,拖动到加载页面中,然后双击计时器:进入到编码界面;if判断语句:之后更改%的Name值:为了将数字变化表现在加载界面上:所以加上这么一句话:之后,在加载界面双击背景,进入到界面的编码界面:加上......
  • 用户加载界面设计--基于C#和Visual Studio2019
    1、设定窗体位置为屏幕中心、修改窗体为无边框形式修改右下角的这里:修改为(屏幕中心打开):修改右下角这里:修改为(无边框形式):然后再调整修改页的大小(自由拉伸即可):之后调整边框背景颜色:为窗体重命名:2、打开工具箱,拖出一个Label标签在这里可以修改Label的字体样式:设置......
  • uniapp上拉加载更多
    <template><viewclass="container"><viewv-for="(item,index)invideoList":key="index"><labelstyle="display:block;width:100%;height:40px;background-color:saddlebrow......
  • 请问为什么加载标签文字的时候,导致页面上出现卡顿?
    加载标签文字导致页面卡顿的问题可能与多种因素有关。这些因素可能包括页面结构、网络请求、浏览器性能、脚本执行等。以下是一些可能导致页面卡顿的原因以及解决方法:大量DOM元素:如果页面包含大量的DOM元素,加载和渲染这些元素可能导致页面卡顿。解决方法包括减少DOM元素数量,使用虚......
  • webman:自动加载(v1.5.7)
    一,官方文档地址:https://www.workerman.net/doc/webman/others/autoload.html二,实际操作1,设置目录:在项目根目录下新建目录extend:修改composer.json增加以下代码:"psr-0":{    "":"extend/"}如图:执行dumpautoloadliuhongdi@lhdpc:/data/webman/image......
  • ZWCAD 自动加载net DLL程序,并加载菜单
    WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SOFTWARE\ZWSOFT\ZWCADM\2018\zh-CN\Applications\AutoCADADDIN]"DESCRIPTION"="""LOADCTRLS"=dword:0000000d"LOADER"="D:\\Users\\ZWCAD\\AutoCADADD......
  • BootstrapBlazor.Splitting 加载动画组件
    BootstrapBlazor.Splitting加载动画组件介绍本Blazor组件依赖于BootstrapBlazor组件库开发,底层由Splitting.js和gsap.js实现。使用该组件库之前需要先安装BootstrapBlazor.Splitting组件独立包。可以通过nuget命令行安装NuGet\Install-PackageBootstrapBlazor.Splitting-V......