ui.py
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'ui.ui'
#
# Created by: PyQt5 UI code generator 5.9.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(170, 190, 75, 23))
self.pushButton.setObjectName("pushButton")
self.progressBar = QtWidgets.QProgressBar(Form)
self.progressBar.setGeometry(QtCore.QRect(30, 50, 361, 71))
self.progressBar.setProperty("value", 0)
self.progressBar.setObjectName("progressBar")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.pushButton.setText(_translate("Form", "PushButton"))
thread.py
import sys
import time
from PyQt5.QtCore import QThread, pyqtSignal, QTimer
from PyQt5.QtWidgets import QApplication, QWidget
from ui import *
a=[1,2]
class MyWindow(QWidget,Ui_Form):
def __init__(self):
super(MyWindow,self).__init__()
self.setupUi(self)
class thread(QThread):
trigger = pyqtSignal()#这里是定义一个信号
i=0
def run(self):
for i in range(100):
self.i=i
time.sleep(1)
a[0]=i
self.trigger.emit()#这里发出一个信号
def sta():
timer.start(1000)
th.start()
th.trigger.connect(shuaxin)#这里监听信号
def shuaxin():
myWin.progressBar.setProperty("value", a[0]+1) #这里执行发出信号后的内容
if __name__ == '__main__':
app = QApplication(sys.argv)
myWin = MyWindow()
timer = QTimer()
th = thread()
myWin.pushButton.clicked.connect(sta)
myWin.show()
sys.exit(app.exec_())