前言

一个程序界面有多个button 按钮时,单击一个按钮,若此按钮对应的信号正在执行,且还未执行完毕;

此时再次单击另外一个按钮,就会出现假死状态。

这个时候我们就需要使用 多线程去解决



多线程+定时器+读取本地图片

# coding:utf-8
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from UU2 import *
import sys
import time a = 0 class Thread_1(QThread): # 线程1
def __init__(self):
super().__init__() def run(self):
values = [1, 2, 3, 4, 5]
while True:
for i in values:
print(i)
time.sleep(0.5) # 休眠 class Thread_2(QThread): # 线程2
def __init__(self):
super().__init__() def run(self):
values = ["a", "b", "c", "d", "e"]
for i in values:
print(i)
time.sleep(0.5) class MainWindous(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super(MainWindous, self).__init__()
self.thread_2 = Thread_2() # 创建线程
self.thread_1 = Thread_1() # 创建线程
self.setupUi(self)
self.timer = QTimer() # 初始化一个定时器
self.pushButton.clicked.connect(self.startTimer) # 开始按钮 对应槽
self.pushButton_2.clicked.connect(self.endTimer) # 关闭按钮 对应槽
self.pushButton_3.clicked.connect(self.pic) # 开启图片按钮 对应槽
self.pushButton_4.clicked.connect(self.pic_close) # 停止图片按钮 对应槽 def startTimer(self):
# self.timer.start(1000) # 开始定时,参数为定时时间间隔
# print("start")
self.thread_1.start() # 开始线程
global a
a = 1
print("start") def endTimer(self):
print("end")
self.thread_2.start() # 开始线程
global a
a = 0 def pic(self):
if a == 1:
self.timer.timeout.connect(self.pic1) # 每次计时到时间时发出信号
self.timer.start(3000) # 设置计时间隔并启动;单位毫秒
else:
QtWidgets.QMessageBox.critical(self, "错误", "请先开始程序") def pic1(self):
if a == 1:
self.label.setText("加载照片")
print("图片加载成功")
# self.thread_3.start() # 开始线程
# 加载本地图片
img_path = "./1.jpg"
self.label_2.setPixmap(QPixmap(img_path))
self.label_3.setPixmap(QPixmap("./1.jpg").scaled(200, 200)) # 显示图片尺寸
QtWidgets.QApplication.processEvents()
else:
print("错误")
self.timer.stop() def pic_close(self):
self.timer.stop() if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
mainWindow = MainWindous()
mainWindow.show()
sys.exit(app.exec_())

成果图

pyqt5 多线程+定时器+读取本地图片的更多相关文章

  1. window.open()读取本地图片简单使用总结

    最近做了一个项目,需要读取本地图片出来,问了一些人,感觉在数据库中存取路径比较合适,故做此方法. 后台查询出来的路径

  2. js读取本地图片并显示

    抄自 http://blog.csdn.net/qiulei_21/article/details/52785191 js读取本地图片并显示 第一种方法比较好 版权声明:本文为博主原创文章,未经博主允 ...

  3. FileReader:读取本地图片文件并显示

    最近忙得比狗还惨,导致长时间没能更新文章,真心对不住啊.抽空整理了下关于在页面上读取和显示本地图片的实例文章,本文通过实例讲解如何使用支持FileReader浏览器的用户将能够通过一个file inp ...

  4. UE4 读取本地图片

    参考链接:https://answers.unrealengine.com/questions/235086/texture-2d-shows-wrong-colors-from-jpeg-on-ht ...

  5. Springboot读取本地图片并显示

    在application.yml中配置url访问路径和本地图片路径: 方框1:url中访问路径,这里为:localhost:8080/testspringboot/image/... 方框2:本地图片 ...

  6. phonegap(cordova) 自己定义插件代码篇(四)----读取本地图片

    有时候确实知道本地图片地址,要获取到base64  /** * 获取本地图片,包括路径和压缩后的 base64 */ (function (cordova) { var define = cordov ...

  7. Jsp&Servlet实现读取本地图片并展示

    在Web开发中图片的读取和展示是一个很常见的功能,实现的过程大致也都一样(包括在各种框架中--)!接下来用流的方式来实现图片的展示 1. 创建Servlet,实现读取,请求方式使用get请求:   p ...

  8. 19-Javaweb项目读取本地图片通过虚拟路径

    有时会把文件存在本地如将图片等放在c.d盘等,在javaweb引用时会出现无法直接访问的问题,但是还是有办法解决的. 可以通过配置虚拟路径: 步骤一: 双击servers下面的tomcat, 在弹出的 ...

  9. 【Android】WebView读取本地图片

    背景 咱的博客园APP,是通过一个WebView来展示新闻的详情的.新闻必然是图文并茂的,无论是支持离线缓存还是加速新闻的打开速度, 都需要咱们打通本地存储与WebView之间的桥梁. 思路 1:首先 ...

随机推荐

  1. 从零开始搞后台管理系统(2)——shin-server

      shin 的读音是[ʃɪn],谐音就是行,寓意可行的后端系统服务,shin-server 的特点是: 站在巨人的肩膀上,依托KOA2.bunyan.Sequelize等优秀的框架和库所搭建的定制化 ...

  2. loadrunner学习笔记一

    这篇笔记主要是针对一个具体的loadrunner脚本里面出现的方法进行解释,具体脚本如下: ` Action() { char *transactionName = "Test"; ...

  3. 【机制】js中的this指向

    1.this的使用场景 我们先把this的使用场景分为两大类:函数外和函数内: 函数外的this 就是在全局代码里,直接使用this: "use strict"; let name ...

  4. .net 开源模板引擎jntemplate 实战演习:基础篇之入门

    一.简介 模板引擎是Web开发中非常重要的一环,它负责将页面上的动态内容呈现出最终的结果展现给前端用户,在asp.net mvc中,我们最熟悉的就是Razor了,作为官方的视图引擎(视图引擎不等同于模 ...

  5. 有钱人买钻石+dfs中使用贪心

    有钱人买钻石 ECNU-3306 题解:这个题目,乍一看以为是dp背包,可是数据量却那么大,只有1,5,10,25四种面额的硬币,每种数量若干,要使得能够刚好兑换成功总金额,在此前提下,还要使得硬币数 ...

  6. CCF(引水入城:60分):最大流+ISAP算法

    引水入城 201703-5 这从题目分析来看很像最大流的问题,只需要增加一个超级源点和一个超级汇点就可以按照题意连边再跑最大流算法. 因为数据量太大了,肯定会超时.但是没有想到可行的解决方法. #in ...

  7. AtCoder Beginner Contest 171-175 F

    171 F - Strivore 直接把初始字符当成隔板,统计的方案数会有重复 为了避免重复情况,规定隔板字母尽可能最后出现,即在隔板字母后面不能插入含隔板字母的字符串 所以在隔板字母后插入的字符只有 ...

  8. Codeforces Round #683 (Div. 2, by Meet IT)

    A 初始情况\(1\) ~ \(n\)堆分别有 \(1\) ~ \(n\) 个糖果,第\(i\)次操作给除了所选堆的糖果数 \(+ i\), 找到一种方案可以使得所有堆糖果数相同,输出操作次数和每次选 ...

  9. WBX24T2X CPEX国产化万兆交换板

      WBX24T2X是基于盛科CTC5160设计的国产化6U三层万兆CPEX交换板,提供24路千兆电口和2路万兆光口,采用龙芯 2K1000处理器.支持常规的L2/L3协议,支持Telnet.SNMP ...

  10. WPF 基础 - Trigger

    1. Trigger 1.1 由属性值触发的 Trigger 最基本的触发器,Property 是关注的属性名称,value 是触发条件,一旦触发条件满足,就会应用 Trigger 的 Setters ...