pyqt5多进程 python_PYQT5开启多个线程和窗口,多线程与多窗口的交互实例

本文介绍如何在PyQT5中实现多线程和多窗口交互,每次点击按钮会弹出一个对话框并开启子线程执行任务,更新对话框的进度条。关闭对话框时会相应地关闭子线程。通过QThread和QThreadPool管理线程,实现高效且灵活的窗口和线程交互。
摘要由CSDN通过智能技术生成

每点击一次按钮,弹出一个对话框(子窗口),同时开启一个子线程来执行任务并更新对话框内容,关闭对话框则关闭对应子线程

1. 建立一个简单的主界面和一个自定义对话框

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):

def setupUi(self, MainWindow):

MainWindow.setObjectName("MainWindow")

MainWindow.resize(327, 303)

self.centralwidget = QtWidgets.QWidget(MainWindow)

self.centralwidget.setObjectName("centralwidget")

self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)

self.gridLayout.setObjectName("gridLayout")

spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)

self.gridLayout.addItem(spacerItem, 0, 0, 1, 1)

self.pushButton = QtWidgets.QPushButton(self.centralwidget)

self.pushButton.setObjectName("pushButton")

self.gridLayout.addWidget(self.pushButton, 0, 1, 1, 1)

spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)

self.gridLayout.addItem(spacerItem1, 0, 2, 1, 1)

MainWindow.setCentralWidget(self.centralwidget)

self.menubar = QtWidgets.QMenuBar(MainWindow)

self.menubar.setGeometry(QtCore.QRect(0, 0, 327, 23))

self.menubar.setObjectName("menubar")

MainWindow.setMenuBar(self.menubar)

self.statusbar = QtWidgets.QStatusBar(MainWindow)

self.statusbar.setObjectName("statusbar")

MainWindow.setStatusBar(self.statusbar)

self.retranslateUi(MainWindow)

self.pushButton.clicked.connect(MainWindow.open_dialog)

QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, Ma

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值