本文主要是介绍PyQt5+Pycharm, QThread,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、创建窗体控件
untitled.ui:
PushButton, PushButton_2, PushButton_3
lineEdit, lineEdit_2, lineEdit_3
二、编译窗体
自动生成untitled.py
三、新建py文件
myDemo.py
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from untitled import *
from PyQt5.QtCore import pyqtSlot, QThread, pyqtSignal
import timeclass longTimeThread(QThread):number_singal = pyqtSignal(int, object)def __init__(self, object):super().__init__()self.object = objectdef run(self):for i in range(1000):self.number_singal.emit(i, self.object)time.sleep(0.1)class MainWindow(QMainWindow, Ui_MainWindow):def __init__(self, parent=None):super(MainWindow, self).__init__(parent)self.setupUi(self)self.thread1 = longTimeThread(self.lineEdit_2) # 创建一个线程self.thread2 = longTimeThread(self.lineEdit_3) # 创建一个线程self.thread1.number_singal.connect(self.updates)self.thread2.number_singal.connect(self.updates)@pyqtSlot()def on_pushButton_clicked(self):self.lineEdit.setText('Hello World')@pyqtSlot()def on_pushButton_2_clicked(self):self.thread1.start()@pyqtSlot()def on_pushButton_3_clicked(self):self.thread2.start()def updates(self, number, object):object.setText(str(number))if __name__ == '__main__':app = QApplication(sys.argv)ui = MainWindow()ui.show()sys.exit(app.exec_())
四、运行
点击PushButton_2, 更新lineEdit_2, 每0.1s加1
点击PushButton_3, 更新lineEdit_3, 每0.1s加1
lineEdit_2和lineEdit_3的更新互不影响,窗体不会卡死。
这篇关于PyQt5+Pycharm, QThread的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!