参考代码
# -*- coding = utf-8 -*-
# @Time : 2022/9/6 16:35
# @Author : Arthur
# @FileName : 使用线程练习.py
# @Software : Pycharm
import sys
import time
from PyQt5 import uic
from PyQt5.QtCore import QThread
from PyQt5.QtWidgets import QApplication, QWidget
class my_thread(QThread):
def __init__(self):
super(my_thread, self).__init__()
def run(self):
for i in range(10):
print('是my_thread线程正在执行...%d' % (i + 1))
time.sleep(1)
class my_window(QWidget):
def __init__(self):
super(my_window, self).__init__()
self.init_ui()
def init_ui(self):
self.ui = uic.loadUi('./ui/thread_sys.ui')
btn1 = self.ui.pushButton
btn2 = self.ui.pushButton_2
edit = self.ui.lineEdit
# 绑定按钮和槽函数
btn1.clicked.connect(self.click_1)
btn2.clicked.connect(self.click_2)
def click_1(self):
for i in range(10):
print('是UI线程正在执行...%d' % (i + 1))
time.sleep(1)
def click_2(self):
self.t = my_thread() # 创建线程
self.t.start() # 开始线程
if __name__ == '__main__':
app = QApplication(sys.argv)
w = my_window()
w.ui.show()
app.exec_()
按钮1没有使用线程,所以在点击按钮1之后程序就处于卡死状态,无法拖动窗体,也无法在输入框中输入文字。
按钮2使用了线程,因此点击按钮2之后程序依然可以进行其他操作,例如拖动窗体、在文本输入框输入文字等等。
原创文章,作者:朋远方,如若转载,请注明出处:https://caovan.com/pyqt5changyongcaozuozhishiyongduoxiancheng/.html


微信扫一扫