PyQt5中多线程模块中多线程模块QThread使用方法的实现使用方法的实现
主要介绍了PyQt5中多线程模块QThread使用方法的实现,文中通过示例代码介绍的非常详细,对大家的学习或
者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
本文主要讲解使用多线程模块QThread解决PyQt界面程序唉执行耗时操作时,程序卡顿出现的无响应以及界面输出无法实时
显示的问题。用户使用工具过程中出现这些问题时会误以为程序出错,从而把程序关闭。这样,导致工具的用户使用体验不
好。下面我们通过模拟上述出现的问题并讲述使用多线程QThread模块解决此类问题的方法。
PyQt程序卡顿和无法实时显示问题现象程序卡顿和无法实时显示问题现象
使用PyQt界面程序,点击运行按钮后,程序在显示框中每秒打印1个数字。程序代码如下:
# -*- coding: utf-8 -*-
import sys
import time
from PyQt5.QtCore import QThread, pyqtSignal
from PyQt5.QtWidgets import QApplication, QMainWindow
from QThread_Example_UI import Ui_Form
class MyMainForm(QMainWindow, Ui_Form):
def __init__(self, parent=None):
super(MyMainForm, self).__init__(parent)
self.setupUi(self)
self.runButton.clicked.connect(self.display)
def display(self):
for i in range(20):
time.sleep(1)
self.listWidget.addItem(str(i))
if __name__ == "__main__":
app = QApplication(sys.argv)
myWin = MyMainForm()
myWin.show()
sys.exit(app.exec_())
程序运行过程结果如下(点击Run按钮后界面出现 未响应未响应 字样 ,, 同时程序也没有出现每隔1秒打印1个数字,实际结果是循环
结束后20个数字一同展示):
评论0