zoukankan      html  css  js  c++  java
  • pyqt多线程进度条

    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_())
    

      

  • 相关阅读:
    c++ 文件读写模板
    sys和system用户的权限区别
    Oracle cmd 命令
    sqldeveloper的安装及其使用教程
    Oracle权限管理详解(2)
    Oracle权限管理详解(1)
    Oracle使用基础
    win7 64位操作系统中 Oracle 11g 安装教程(图解)
    MySQL cmd操作
    Linux下安装tomcat
  • 原文地址:https://www.cnblogs.com/zhangdingqu/p/10643595.html
Copyright © 2011-2022 走看看