【PyQt5篇】多线程

文章目录

  • 🍔使用QtDesigner进行设计
  • 🛸实现多线程
    • 🌹效果
    • 🔎原因

在这里插入图片描述

🍔使用QtDesigner进行设计

在这里插入图片描述

在这里插入图片描述
对应的代码btn.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"><class>Form</class><widget class="QWidget" name="Form"><property name="geometry"><rect><x>0</x><y>0</y><width>400</width><height>205</height></rect></property><property name="windowTitle"><string>Form</string></property><widget class="QLineEdit" name="lineEdit"><property name="geometry"><rect><x>90</x><y>60</y><width>231</width><height>31</height></rect></property></widget><widget class="QPushButton" name="pushButton"><property name="geometry"><rect><x>90</x><y>130</y><width>93</width><height>28</height></rect></property><property name="text"><string>按钮1—卡</string></property></widget><widget class="QPushButton" name="pushButton_2"><property name="geometry"><rect><x>230</x><y>130</y><width>93</width><height>28</height></rect></property><property name="text"><string>按钮2—不卡</string></property></widget></widget><resources/><connections/>
</ui>

🛸实现多线程

代码如下

import sysimport time
from PyQt5 import uic
from PyQt5.QtCore import QThread
from PyQt5.QtWidgets import QApplication, QWidgetclass MyThread(QThread):def __init__(self):super().__init__()def run(self):for i in range(5):print("是线程中执行...%d" % (i+1))time.sleep(1)class MyWin(QWidget):def __init__(self):super().__init__()self.init_ui()def init_ui(self):self.ui=uic.loadUi('./bun.ui',self)lineedit=self.ui.lineEditbtn1=self.ui.pushButtonbtn2=self.ui.pushButton_2# 绑定槽函数btn1.clicked.connect(self.click_1)btn2.clicked.connect(self.click_2)def click_1(self):for i in range(5):print("================= 卡的线程  =================中执行...%d"%(i+1))time.sleep(1)def click_2(self):self.my_thread=MyThread()self.my_thread.start()if __name__ == '__main__':app = QApplication(sys.argv)mywin = MyWin()mywin.ui.show()app.exec()

🌹效果

我们点击第一个按钮后,不能向文本框里面输入内容
直到循环结束
在这里插入图片描述
当我们按第二个按钮的时候,能够输入内容
在这里插入图片描述

🔎原因

一个线程是在主线程(UI线程)中运行的,当在主线程中执行耗时操作时(例如click_1方法中的for循环),它会阻塞主线程,导致界面无响应。

另一方面,使用QThread创建的线程会在后台运行,不会阻塞主线程。这是因为QThread类提供了一个事件循环,可以在后台处理线程的任务,而不会影响到线程的响应性。(这个属于自己创建的线程,不属于主线程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/795983.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

边界值设计测试用例

​ 边界值分析法&#xff08;Boundary Value Analysis&#xff0c;BVA&#xff09;的测试用例来自于等价类的边界&#xff0c;是等价类划分法的补充。根据边界值划分法&#xff0c;等价类分析法中的测试数据不是选取等价类中的典型值或任意值&#xff0c;而是应当选取正好等于、…

C++语言学习(三)——内联函数、auto、for循环、nullptr

1. 内联函数 &#xff08;1&#xff09;概念 以inline修饰的函数叫做内联函数&#xff0c;编译时C编译器会在调用内联函数的地方展开&#xff0c;没有函数调 用建立栈帧的开销&#xff0c;内联函数提升程序运行的效率。 内联函数是一种编译器指令&#xff0c;用于告诉编译器…

Web3 革命:揭示区块链技术的全新应用

随着数字化时代的不断发展&#xff0c;区块链技术作为一项颠覆性的创新正在改变着我们的世界。而在这一技术的进步中&#xff0c;Web3正逐渐崭露头角&#xff0c;为区块链技术的应用带来了全新的可能性。本文将探讨Web3革命所揭示的区块链技术全新应用&#xff0c;并展望其未来…

Redis从入门到精通(四)Redis实战(一)短信登录

文章目录 前言第4章 Redis实战4.1 短信登录4.1.1 基于session实现短信登录4.1.1.1 短信登录逻辑梳理4.1.1.2 创建测试项目4.1.1.3 实现发送短信验证码功能4.1.1.4 实现用户登录功能4.1.1.5 实现登录拦截功能4.1.1.6 session共享问题 4.1.2 基于Redis实现短信登录4.1.2.1 Key-Va…

顺子日期(结果填空)

为了解决这个问题&#xff0c;我们需要遍历2022年的每一天&#xff0c;并检查日期的每一位数字以查找顺子。下面是一个Java程序&#xff0c;用于计算2022年中的顺子日期数量&#xff1a; public class Main {public static void main(String[] args) {int count 0; for (int…

零日攻击测试

目录 声明 介绍 1.明确测试目标和范围 2.组建专业团队 3.使用合法和道德的方法 4.模拟真实攻击场景 5.记录和报告测试结果 6.遵守法律和规定 注意 流程 1.确定测试目标和范围 2.信息收集 3.漏洞扫描 4.漏洞验证 5.编写利用代码 6.执行测试 7.结果报告 方法 1…

[StartingPoint][Tier0]Preignition

Task 1 Directory Brute-forcing is a technique used to check a lot of paths on a web server to find hidden pages. Which is another name for this? (i) Local File Inclusion, (ii) dir busting, (iii) hash cracking. (目录暴力破解是一种用于检查 Web 服务器上的大…

pytorch 中 nn.ModuleList()使用说明

nn.ModuleList() 是 PyTorch 中的一个类&#xff0c;用于管理神经网络模型中的子模块列表。它允许将多个子模块组织在一起&#xff0c;并将它们作为整个模型的一部分进行管理和操作。 在神经网络模型的开发过程中&#xff0c;通常需要定义和使用多个子模块&#xff0c;例如不同…

leetcode代码记录(有效的字母异位词

目录 1. 题目&#xff1a;2. 我的代码&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断它们是不是一组变位词&#xff08;字母异位词&#xff09;。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同且字符顺序…

【简单讲解下epoll】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

使用porgo研究多峰函数

研究多峰函数的全局极小点 多峰函数是具备多个局部极小点,并且在局部极小处梯度信息为0的函数。 pip install porgo基本准备 import numpy import porgo定义多峰函数 multimodal_function = lambda x: numpy.sum(x**2 - 10 * numpy.cos(2

循环神经网络:揭秘长期记忆的魔法之源

在人工智能和机器学习领域&#xff0c;循环神经网络&#xff08;Recurrent Neural Networks&#xff0c;简称RNN&#xff09;以其独特的架构和机制&#xff0c;在处理序列数据方面展现出了强大的能力。特别值得一提的是&#xff0c;RNN能够学习到长期的记忆&#xff0c;这使得它…

ubuntu-server部署hive-part1-安装jdk

参照 https://blog.csdn.net/qq_41946216/article/details/134345137 操作系统版本&#xff1a;ubuntu-server-22.04.3 虚拟机&#xff1a;virtualbox7.0 安装jdk 上传解压 以root用户&#xff0c;将jdk上传至/opt目录下 tar zxvf jdk-8u271-linux-x64.tar.gz 配置环境变量…

promise.race方式使用

Promise.race 赛跑机制&#xff0c;只认第一名 Promise.race其实使用的并不多&#xff0c;如果真要使用。我们可以提出这样一个需求&#xff1a; 比如&#xff1a;点击按钮发请求&#xff0c;当后端的接口超过一定时间&#xff0c;假设超过三秒&#xff0c;没有返回结果&…

网址打包微信小程序源码 wap转微信小程序 网站转小程序源码 网址转小程序开发

内容目录 一、详细介绍二、效果展示2.效果图展示 三、学习资料下载 一、详细介绍 我们都知道微信小程序是无法直接打开网址的。 这个小程序源码提供了一种将网址直接打包成微信小程序的方法&#xff0c; 使得用户可以在微信小程序中直接访问这些网址内容。 这个源码没有进行加…

数据库系统概论(超详解!!!)第三节 关系数据库标准语言SQL(Ⅴ)

1.数据更新 1.插入数据 1.插入元组 语句格式 INSERT INTO <表名> [(<属性列1>[,<属性列2 >…)] VALUES (<常量1> [,<常量2>]… ); 功能&#xff1a;将新元组插入指定表中 INTO子句 &#xff1a; 指定要插入数据的表名及…

LeetCode 869. 重新排序得到 2 的幂

解题思路 打表法&#xff0c;将N^2放入到r数组中&#xff0c;然后将n进行排序&#xff0c;并且用n对r数组的数据一一配对&#xff0c; 配对成功&#xff0c;则返回true。如果没有配对成功&#xff0c;则返回false。 相关代码 class Solution {public boolean reorderedPower…

律所如何做好内容运营,提升品牌影响力

近年来&#xff0c;随着品牌推广方式的改变&#xff0c;中国律所也开始关注内容营销&#xff0c;期待能够凭借内容营销增强影响力。今天&#xff0c;媒介盒子就从内容传播的逻辑出发&#xff0c;和大家聊聊律所如何做好内容运营&#xff0c;提升品牌影响力。 一、品牌形象管理 …

蜂窝物联:智慧禽畜养殖解决方案

蜂窝物联&#xff1a;智慧禽畜养殖解决方案是基于物联网技术&#xff0c;在线监测动物生长的环境信息&#xff0c;通过氨气传感器、二氧化碳传感器、湿度传感器等设备监测舍内的各项环境参数&#xff0c;自动把畜舍内的实时环境参数上传至监控软件平台&#xff0c;并联动控制风…

C++11特性详解(万字)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 统一的初始化列表 {}初始化 这种初始化方式我们建议用第一种&#xff0c;但是以后看见下面两种也不要感到疑惑&#xff0c;是可以这样初始化的。 内置类型初始化 int main() {int a 1;int b { 1 };int c{ 1 };return 0…