PyQt5多线程刷新界面防假死示例

  

在做GUI界面时我们希望后台任务能够与UI分开,在PyQt中,主线程用来重绘界面。而子线程里边的实时处理结果需要反馈到界面,子线程里边不能执行界面更新操作。

  

<强> wxpython多线程刷新界面转到

  https://www.jb51.net/article/176308.htm

  

<强>下面给出类Python3 + PyQt5多线程防假死动态刷新界面的模板

        从进口QtWidgets PyQt5 QtCore   导入系统   从PyQt5。QtCore进口*   导入的时间         #继承QThread   类Runthread (QtCore.QThread):   #通过类成员对象定义信号对象   _signal=pyqtSignal (str)      def __init__(自我):   超级(Runthread自我). __init__ ()      def __del__(自我):   self.wait ()      def运行(自我):   因为我在范围(100):   time . sleep (0.2)   self._signal.emit (str(我)#注意这里与_signal=pyqtSignal (str)中的类型相同         类的例子(QtWidgets.QWidget):      def __init__(自我):   super () . __init__ ()   #按钮初始化   自我。按钮=QtWidgets。QPushButton(“开始”,自我)   self.button。setToolTip(“这是一个& lt; b> QPushButton小部件”)   self.button.resize (self.button.sizeHint ())   self.button。移动(120、80)   self.button.clicked.connect (self.start_login) #绑定多线程触发事件      #进度条设置   自我。pbar=QtWidgets.QProgressBar(自我)   self.pbar。setGeometry (50, 210, 25)   self.pbar.setValue (0)      #窗口初始化   自我。setGeometry (300、300、300、200)   self.setWindowTitle (“OmegaXYZ.com”)   self.show ()      自我。线程=没有#初始化线程      def start_login(自我):   #创建线程   自我。线程=Runthread ()   #连接信号   self.thread._signal.connect (self.call_backlog) #进程连接回传到GUI的事件   #开始线程   self.thread.start ()      def call_backlog(自我,味精):   self.pbar.setValue (int(味精))#将线程的参数传入进度条         if __name__==癬_main__”:   应用=QtWidgets.QApplication (sys.argv)   myshow=例子()   myshow.show ()   sys.exit (app.exec_ ())      

效果:   

 PyQt5多线程刷新界面防假死示例

  

以上这篇PyQt5多线程刷新界面防假死示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

PyQt5多线程刷新界面防假死示例