PySide2 QtCore.Qthread значение обновления испустить и подключиться - PullRequest
0 голосов
/ 13 апреля 2020

У меня проблема с обновлением переменной потоком! У меня есть следующая проблема:

RuntimeWarning: MetaObjectBuilder :: addMethod: недопустимая подпись метода для «CPU» self.threadclass.connect (SIGNAL ('CPU'), self.updateProgressBar) '

Код:

import sys

from PySide2 import QtWidgets, QtCore
from PySide2.QtCore import SIGNAL
from PySide2.QtWidgets import QApplication

from view import weicount_main_view
from source import sysinfo


class WeicountMain(QtWidgets.QMainWindow, weicount_main_view.Ui_MainWindow):
    def __init__(self, parent=None):
        super(WeicountMain, self).__init__(parent)
        self.setupUi(self)
        self.threadclass = ThreadClass()
        self.threadclass.start()
        self.threadclass.CPU_VALUE.connect(SIGNAL('CPU_VALUE'), self.updateProgressBar)

    def updateProgressBar(self, val):
        self.progressBar.setValue(val)

class CpuClass(QtCore.QObject):
    cpu = Signal()

class ThreadClass(QtCore.QThread):
    CPU_VALUE = CpuClass()

    def __init__(self, parent=None):
        super(ThreadClass, self).__init__(parent)

    def run(self):
        while 1:
            self.CPU_VALUE.emit(SIGNAL('CPU_VALUE'), sysinfo.getCPU())


if __name__ == "__main__":
    a = QApplication(sys.argv)
    app = WeicountMain()
    app.show()
    sys.exit(a.exec_())

Файл sysinfo:

import psutil


def getCPU():
    return psutil.cpu_percent(interval=1)
...