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
Post a Comment