python - PyQt5 Signals and Threading -


i watched short tutorial on pyqt4 signals on youtube , having trouble getting small sample program running. how connect signal being emitted thread main window?

import cpuusagegui import sys import sysinfo pyqt5 import qtcore  """main window setup""" app = cpuusagegui.qtwidgets.qapplication(sys.argv) form = cpuusagegui.qtwidgets.qwidget() ui = cpuusagegui.ui_form() ui.setupui(form)  def updateprogbar(val):     ui.progressbar.setvalue(val)  class threadclass(qtcore.qthread):     def run(self):         while true:             val = sysinfo.getcpu()             self.emit(qtcore.pyqtsignal('cpuvalue'), val)  threadclass = threadclass()  # section not work connect(threadclass, qtcore.pyqtsignal('cpuvalue'), updateprogbar) # section not work  if __name__ == "__main__":     threadclass.start()     form.show()     sys.exit(app.exec_()) 

the signal must created, inside threadclass, or before emit signal inside threadclass, better create inside class.

after creation, need connect progress bar function. here example of signal created , connected inside class.

class threadclass(qtcore.qthread):     # create signal     sig = qtcore.pyqtsignal(int)      def __init__(self, parent=none):         super(threadclass, self).__init__(parent)          # connect signal desired function         self.sig.connect(updateprogbar)      def run(self):         while true:             val = sysinfo.getcpu()              # emit signal             self.sig.emit(val) 

keep in mind signals have changed style since pyqt5 : description

if watched tutorial pyqt4, not same.


Comments